プロセスとセッションを管理するための機能強化

プロセスとセッションの管理は、4Dアプリケーションの最適化とモニタリングに不可欠です。様々なコマンドにより、これらに関する重要な情報を簡単に操作し、取得することができます。

4D 20 R7 では、これらの機能をさらに利用しやすく、効果的にする一連の機能強化を発表します。これらの新機能は、作業を簡素化するだけでなく、コードのパフォーマンスも向上させるように設計されています。改良点は以下の通りです:

  • プロセス情報をオブジェクト形式で取得し、プロパティの操作を容易にします
  • セッションID を使ってセッション情報に直接アクセスできるようになり、管理が容易になりました
  • プロセス番号が ID から直接取得しやすくなりました
  • プロセスの作成日時へアクセスできるようになりました
  • セッションのプロセスをすべて取得するため、Process activityコマンドによって返される結果のフィルタリングを最適化しました。

 

これらのアップデートにより、開発エクスペリエンスがどのように変化し、アプリケーションの効率がどのように改善されるかをご覧ください!

HDI: プロセスとセッションの管理

プロセスまたはセッション情報の取得

新しい 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
           }
    ]
}

さらに深く

これらのエキサイティングな変更の詳細については、これらのコマンドに関する更新されたドキュメントをご覧ください。あなたの考えや感想を、フォーラムで共有してください

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。