BLOGS

パフォーマンス

warning: file_get_contents(http://www.telize.com/geoip/54.198.55.167) [function.file-get-contents]: failed to open stream: HTTP request failed! in /var/www/www.4d.com/docs/includes/common.inc(1762) : eval()'d code on line 4.

次世代HTTPサーバー

新しい マルチスレッドサーバーは、Web ページを送信するだけではありません。

長い間 Web サーバーは、アプリケーション データを多くのユーザーに供する為の方法の一つとして用いられてきましたが、最新化を経た今、開発者とユーザーに更なる機能を提供します。:

  • Web スタンダードに完全対応
  • 改善されたキャッシュ管理
  • ネイティブな GZIP サポート、および自動またはプログラム制御された圧縮
  • 完全にスレッド化したアーキテクチャーで更なる拡張性を実現

 

セッション管理

セッションの自動管理機能が追加され、セレクションやプロセス変数などを、同じクライアントから送信された2つの接続間で保持することが可能になりました。

 

4D タグ

4D タグがより高いセキュリティを実現します。例えば4DTEXT タグを使うことにより、クライアント側でプログラムを実行されないことを確証できます。また、Web ページと 4D データベースの直接通信を可能にする 4DELSEIF や 4DBASE タグでテンプレートの作成も簡単になりました。

ハードウェアグラフィックアクセラレーション

4D v13ではより高速なグラフィック描画能力を利用できるようになりました。

4Dはフォームや画像、ストラクチャーを描画する際自動でOSの技術 (CoreGraphicsとDirect2D) を使用するので、利用可能であればハードウェアアクセラレーションの恩恵を受け得ることができます。

 

64-bitでのシーケンシャルソート

64-bit環境におけるシーケンシャルソート

パフォーマンスにおける拡張性の効果をお見せするために、32-bitおよび64-bitバージョンの4D Server v12を使用して、シーケンシャルソートにかかる時間を比較しました。ソートでは比較に使用する一時的なデータを格納するメモリが必要になります。4D Serverはこの種の処理にキャッシュを使用せず、“エンジンメモリ” (キャッシュの外に4D Serverが割り当てることのできる仮想メモリ) 内のメモリを割り当てます。今回のテストでは両環境でキャッシュに同じサイズを設定しました。必要な一時メモリの量が大きくなると、32-bitバージョンでは物理メモリ内に一時メモリ領域を確保できなくなります。そこでOSはディスクにメモリをスワップします。スワップが発生するということは遅くなるということです。ディスクアクセスはミリ秒単位で計測され、RAMアクセスはマイクロ秒単位で計測されます。64-bitバージョンでは、4D Serverは必要なメモリをすべてRAMでまかなうことができます。

 

4D Server v12 64-bitでのクエリ

キャッシュサイズを増やしてクエリをスピードアップ

拡張性とは通常、速度のことではありません。より多くのメモリを割り当てられることで、アプリケーションの動作が速くなるわけではありませんが、より重いロードをサポートできるようになります。しかし動作が速くなることもあります。これは4D Serverがより多くのRAMを使用できるようになるためです。典型的な例はキャッシュサイズです。32-bitバージョンではキャッシュに最大2.3GBを割り当てることができます。(残りは接続やプロセス、ユーザー、コードを処理するためにエンジンが使用します。) 64-bitバージョンにはこの制限がなく、キャッシュにすべてのレコードインデックスを格納することができます。これによりアプリケーションが速くなります。すべてのデータをキャッシュに置くことができることで、4D Serverは (空きスペースを作ってユーザーがリクエストしたレコードをロードする等のために) それをパージする必要はなくなります。レコードはすでにキャッシュにあり、ディスクとのスワップは発生しません。

 

この動作をお見せするために、同じテーブルに対するシーケンシャルクエリを2回実行して時間を比較しました。