私はIISでphp-cgi.exe
によって読み込まれたページに基づいてWebアプリケーションを実行しています。IISで実行されているPHPからCOMオブジェクトをインスタンス化するより効率的な方法はありますか?
私は、COMに公開の.NETライブラリを作成TLBを生成し、それを登録することができます
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\TlbExp.exe" RomCom.dll
c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /u RomCom.dll
c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /codebase RomCom.dll /tlb:RomCom.tlb
を...そしてthusly PHPのクラスのメンバーにアクセス:
$commie = new COM("RomCom.LettersClass");
print_r($commie->X);
しかし、このようにインスタンス化されると、COMオブジェクトを含むライブラリは各PHP実行の中でロードするのに時間がかかります - microtime()
にその行をラップすると、On My Machine™に約0.2秒かかることがわかります。その後のインスタンス内各PHPの実行がはるかに少ないコストがかかるので、私はこのコストはCOMライブラリの検索によるもののどちらかであると仮定し、またはライブラリがPHP環境
にロードされたときに起こるいくつかのものにこのCOMオブジェクトの読み込みを高速化するために、PHP環境またはIISを構成する方法はありますか?
ボーナス質問:正しい質問をしていますか、またはPHPから.NETコードを呼び出す方法がありますか?私はNetPhp
ライブラリについて読んだことがありますが、私の理解では、フードの下でCOM
クラスを使用しているので、同じパフォーマンスのペナルティが課せられます。
「COMオブジェクト」? 2017年?真剣に? – arkascha
ええ、私は知っています。ボーナスの質問にお気軽にお答えください。 –