株式会社テクナレッジ

Btrieve Classes for .NET 7.0

Btrieveエキスパートの皆様に朗報! おかげさまで13年の実績!

Btrieve/PSQLをご利用のお客様、新しい環境への移行でお悩みではないですか?
解決策はBtrieve Classes for .NETです!

パフォーマンス比較表

PSQL person表のFirst_Nameカラムの値を全てリスト・ボックスに表示するC#アプリケーションを作成し、 パフォーマンスの比較をしました。当製品のパフォーマンスが約3〜20倍と圧倒的です!

Access Method 1st 2nd コード
ADO.NET + PSQL OLE DB provider 12s 10s code1
Btrieve classes record object 4s 2s code2
Btrieve classes extended object 4s 380mscode3

(注) 2ndの値はキャッシュ効果で短縮されています。

なぜパフォーマンスが良いのか?

ADO.NET + OLE DB providerの場合ソフトウェア層が厚い事がパフォーマンス的に 不利な状況の原因と思われます。COMを使ったモジュールがソフトウェア層に入る 場合RPCベースのマーシャリングのオーバーヘッドは大きいと推測します。

弊社ライブラリはC++アンマネージド・コードから直接Btrieve APIを呼び出す形式でソフトウェア レイヤーは非常に薄い構成です。マネージド・データへの変換はデータ転送量が少なくなるように最適化された コードを採用しています。C++で記述しているのはC#等のジェネリックなマーシャリングよりも細かくマーシャリングを 制御してパフォーマンスを確保することが出来るからです。

また、ADO.NETやOLE DB providerは複数種類のデータベースに対応するために 多くの機能や仕様が追加されているのですが弊社ライブラリはPSQL/Btrieveに 特化しているためそのような一般化のためのコードが無いことがこのパフォーマンスを 生み出していると考えます。

バージョン6の新機能について

Btrive Classes for .NET ver 7.0では新たに以下の新機能を追加しました。

ストラクチャービルダー

.NET言語では出来なかった構造体メンバーのアライメント設定がSystem.Runtime.Interopクラスの 利用で可能となりましたが、その定義方法は多くの属性を定義しなければならないものです。 最初に定義サンプルを見たときにはこれは何かの間違いではないかと思った程面倒な仕様です。 実際にこの構造体をコードして定義するのはカラム数、テーブル数が増加するほど 非常にワークロードを必要とすることを実際にアプリケーションを作成してみて実感しました。 特にヌルフラグ分の領域確保を間違えたバグを探すのにも時間がかかります。 このような状況を踏まえてバージョン1.10よりストラクチャービルダーという Microsoft Visaual Studio.NET用のアドインを添付いたしました。このツール により、指定したDDF/テーブルに関連する構造体を自動生成してソースコードに簡単 に挿入することが出来ます。構造体定義は言語により微妙にフォーマットが違っています。 今回のバージョンではC#とVB.NETに対応しています。

3系統のクラス

当製品では3系統のクラスをご用意いたしました。お客様の状況に合わせてご選択いただけます。

製品の概要

対応システムおよび言語

注:Microsoft Visual Studio .NET 2008以前はサポートされません。

対応データベース

注:上記はエンジンのバージョンでBtrieveファイルのバージョンではありません。

開発や評価目的に無料で使用できるPSQL v11の評価版および開発版がございますのでぜひご利用ください。

PSQL v11評価版のページ

販売価格等