Tech Tips – 4月の4つのTipsはこちら!
by Add Komoncharoensiri, Director of Technical Services at 4D Inc.
4D開発者として、あなたは4Dが継続的に出荷する新しい進歩についていけなければなりません。製品チームが提供するTipsやトリックの他に、Tech Tipsは4Dのコンセプトのいくつかを学ぶためのもう一つのリファレンスです。
この記事では、4つのTipsを紹介します。
- SQLのワイルドカード文字をリテラル文字列として扱う方法
- プログラムによるプロジェクト名の取得
- 同じコールチェーンにあるプリエンプティブなメソッドはプリエンプティブであるべきである
- シートを基にした新しいView Proドキュメントの作成
高度な Webアプリケーションに対応したスケーラブルセッション
Webアプリケーションは現代に不可欠なツールです。マシンとプロセッサーがより強力になるにつれ、Webアプリケーションは常にパフォーマンス要件を満たさなくてはなりません。4D v18 R6 で、4D Webサーバーが新しいタイプの Webセッション、スケーラブル Web セッション を提供するのはこのためです。
では、詳しく見ていきましょう。
共有することがパフォーマンスにつながる
ORDA – プロセス間でエンティティセレクションを共有する
4D v16 R6では、プロセス間の通信に新しい概念、共有 オブジェクトと 共有 コレクション変数が導入されました!このおかげで、プロセス間で簡単に情報を共有することができるようになりました。
今までは、エンティティセレクションは、プロセス間で共有することができませんでした。しかし、4D v18 R5では、エンティティセレクションを共有できるようになりました。
もう、主キーのリストを作成して、選択したエンティティを別のプロセスに移動させる必要はありません。ORDAのエンティティセレクションを共有オブジェクトとして含めることで、あなたのマルチプロセスのコードを 強化します。
詳しくはこちらをご覧ください。
オブジェクト・コーナー:簡単な共有とその他のグッドニュース
オブジェクトを共有オブジェクトに入れようとしたときに、「Not supported value type in a shared object」というエラーが何回出たでしょうか?
あなたはどうしましたか?無実のオブジェクトを共有オブジェクトにするために長いコードを書き、おそらくそのすべてのプロパティを繰り返し処理しましたか?
共有オブジェクトをある共有グループから別の共有グループに転送するのはどうでしょうか?
オブジェクトの面白いところは、ハッシュマップ(キー/バリューシステム)として使えることはすでにご存知でしょう。しかし、1行のコードですべてのキーやすべてのバリューを取得するのはどうでしょうか?
4D v18 R3がリリースされ、良いニュースがもたらされましたので、読み進めてください。
スレッドセーフコマンドと非スレッドセーフコマンドの共存
スレッドセーフなメソッドとスレッドセーフでないメソッドの両方を使用し、スレッドセーフでないコマンドをスキップする条件を使用する必要があったことはありませんか?現在、コンパイラはこのようなことを防ぐためにエラーを投げていますが、このチェックを無効にするフラグがあり、このブログ記事でその方法を説明します。
プロセスの同期を簡単に
プリエンプティブプロセスは、CPU の全コアを使用して大規模な計算を並列に実行する場合に非常に便利ですが、時にはタスクを協力なプロセス(例えば、ノンプリエンプティブコマンドを使用)に委譲する必要があります。この場合 New signalコマンドを使えば、あるプロセスを一時停止して、他のプロセスからの応答を待つことができます!
プリエンプティブモードでSQLを開始/終了
プリエンプティブプロセスにより、アプリケーションはマルチコアコンピュータをフルに活用し、同時リクエストに対してより速いレスポンスを実現します。4D v17 R4から。 Begin SQL, End SQLおよび内部データベースで使用される関連するSQLステートメントは、プリエンプティブに準拠するようになりました。
4Dリモートでのプリエンプティブ・プロセス
クライアント側で複雑な計算やエクスポートを実行する必要があるのでしょうか?プリエンプティブ・プロセスを使用すれば、ユーザーとその日常業務を減速させることなく、これらのアクションを開始することができます。
より多くのスレッドセーフコマンドを自由に使える
4Dでは、プリエンプティブプロセスでマルチコアコンピュータをフルに活用することができます。以前のブログ記事で、プリエンプティブ・プロセスで使用できる拡張コマンドのリストを提供し、グローバル実行時間の高速化と、より多くのユーザーとの接続を可能にしました。そして、皆様からのフィードバックにお応えして、さらに多くのコマンドを追加してリストを増やしました。