プロセスとセッションの管理は、4Dアプリケーションの最適化とモニタリングに不可欠です。様々なコマンドにより、これらに関する重要な情報を簡単に操作し、取得することができます。
4D 20 R7 では、これらの機能をさらに利用しやすく、効果的にする一連の機能強化を発表します。これらの新機能は、作業を簡素化するだけでなく、コードのパフォーマンスも向上させるように設計されています。改良点は以下の通りです:
- プロセス情報をオブジェクト形式で取得し、プロパティの操作を容易にします
- セッションID を使ってセッション情報に直接アクセスできるようになり、管理が容易になりました
- プロセス番号が ID から直接取得しやすくなりました
- プロセスの作成日時へアクセスできるようになりました
- セッションのプロセスをすべて取得するため、Process activityコマンドによって返される結果のフィルタリングを最適化しました。
これらのアップデートにより、開発エクスペリエンスがどのように変化し、アプリケーションの効率がどのように改善されるかをご覧ください!
プロセスまたはセッション情報の取得
新しい Process info コマンド
新しい Process infoコマンドはオブジェクトを返します。このシンタックスの利点は、情報をオブジェクトで取得できるため、複数の変数を使用するよりも扱いやすいことです。そのため、 _O_PROCESS PROPERTIES コマンドは非推奨となりました。
var $process : Object
$process:=Process info($processNumber)
この Process infoコマンドは新しいプロパティ、creationDateTime を返します。このプロパティによって、プロセスがいつ作成されたかを知ることができます。
出力例:
{
"number": 4,
"name": "Application process",
"sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
"ID": 4,
"visible": true,
"type": -18,
"state": 0,
"creationDateTime": "2024-09-22T12:46:39.243Z",
"preemptive": false,
"systemID": "123145476132864",
"cpuUsage": 0,
"cpuTime": 0.006769
}
たとえば、自分のプロセスがプリエンプティブかどうかを知るには、次のように書きます:
var $preemptive : Boolean
$preemptive:=Process info($processNumber).preemptive
新しい session info コマンド
新しい Session infoコマンドを使うと、セッションIDを使ってセッションの情報を取得できます。この情報はすでに Process activity コマンドで取得することが可能でした。この新しいコマンドの利点は、シンプルなオブジェクトを返すので、時間とパフォーマンスを節約できることです。
var $session : Object
$session:=Session info($sessionID)
$session:=Session info(Process info($processNumber).sessionID)
出力例:
{ "ID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5", "userName": "Designer", "machineName": "My Computer", "systemUserName": "John Doe", "IPAddress": "localhost", "hostType": "mac", "type": "remote", "state": "active", "creationDateTime": "2024-09-10T09:55:54Z", "persistentID": "8FFDAE519F1F4DCDB81E8E8DB00AD101" }
プロセスIDからプロセス番号を取得する
プロセスIDからプロセス番号を取得する Process numberコマンドが更新されました。プロセス名を使うこれまでの方法に加え、プロセスID を渡して直接プロセス番号を取得できるようになりました。
var $processNumber : Integer
var $processName : Text
var $processID : Integer
// プロセス名を渡す場合
$processNumber:=Process number($processName)
// プロセスIDを渡す場合
$processNumber:=Process number($processID)
Process activity コマンドの改善
セッションによるプロセスの絞り込み
Process activityコマンドを 使うと、プロセスとセッションのリストを取得できます。 Processes only または Sessions only オプションを渡すと、プロセスまたはセッションのリストを取得します。これで、より効率的に結果を絞り込むことができます。セッションIDを渡すだけで、そのセッションに紐づいているプロセスのリストを取得できます。
可能な組み合わせの例は以下のとおりです:
// すべてのセッションとプロセスを返します
$o:=Process activity()
// すべてのプロセスを返します
$o:=Process activity(Processes only)
// すべてのセッションを返します
$o:=Process activity(Sessions only)
// 引数で指定したセッションと、それに紐づいたプロセスを返します
$o:=Process activity($sessionID)
// 引数で指定したセッションに紐づいたプロセスを返します
$o:=Process activity($sessionID ; Processes only)
// 引数で指定したセッションを返します
$o:=Process activity($sessionID ; Sessions only)
プロセスの作成日時の取得
Process activityコマンドによって返されるProcessオブジェクトにも新しいプロパティが追加されました。そのため、任意のプロセスの作成日時を簡単に取得することができます。
出力例:
{
"processes": [
{
"name": "Application process",
"sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
"number": 4,
"ID": 4,
"visible": true,
"systemID": "123145476132864",
"type": -18,
"state": 0,
"cpuUsage": 0,
"cpuTime": 0.006769,
"creationDateTime": "2024-09-22T12:46:39.324Z",
"preemptive": false
}
]
}
さらに深く
これらのエキサイティングな変更の詳細については、これらのコマンドに関する更新されたドキュメントをご覧ください。あなたの考えや感想を、フォーラムで共有してください!