我想衡量我的程序exe文件的啓動時間是 是從點擊或[進入] 時刻的時間,如果從控制檯或任何其他方式,直到 的那一刻,當程序啓動時完成, 它的代碼可以與執行開始(可能當主首先命令() 執行這意味着[?])成立 所有結構如何測量program.exe的啓動時間?
我想programmaticaly衡量它從 我的代碼裏面 - 所以我想一個辦法做到這一點 會需要讀取準確的射擊時間 程序然後從 減去這個時間的第一行鱈魚es執行
(對不起,我的英語不好)怎麼辦?
我想衡量我的程序exe文件的啓動時間是 是從點擊或[進入] 時刻的時間,如果從控制檯或任何其他方式,直到 的那一刻,當程序啓動時完成, 它的代碼可以與執行開始(可能當主首先命令() 執行這意味着[?])成立 所有結構如何測量program.exe的啓動時間?
我想programmaticaly衡量它從 我的代碼裏面 - 所以我想一個辦法做到這一點 會需要讀取準確的射擊時間 程序然後從 減去這個時間的第一行鱈魚es執行
(對不起,我的英語不好)怎麼辦?
是否要從包含shell(cmd.exe或Windows資源管理器)開銷或從程序啓動的點擊或[回車]進行度量?
以編程方式,您只能測量進程創建時間,以便不包括查找,讀取和映射.exe文件或任何DLL。時間將根據虛擬內存中已映射的內容而有所不同。它將包含C RTL的初始化,但不包括其他內容。
也許你能做的最好的是GetProcessTimes。
問題是,即使父進程不一定等待子進程初始化完成 - 它可以使用WaitForInputIdle
,但如果您使用的是Windows資源管理器等標準工具,那麼您堅持這一點。我看不出有什麼辦法可以在不編寫自己的情況下測量shell的開銷。
如果我會寫我自己的流程啓動器?然後我可以顯示Run(「Program.exe」)的確切時間,然後在program.exe的主體中顯示主進入的確切時間 - 它是測量我的啓動的確切方式(這是醜陋的,因爲我希望得到它從我的安裝程序不使用外部啓動器,但如果好方法不可用,我想至少嘗試這個更糟糕的一個) –
如何在程序啓動之前讀取性能計數器並在其main()中存儲兩個值然後計算差值? –
如何在我的程序啓動之前調用qpc(加載到內存)? –
在java中重寫它 - 然後可以使用秒錶。 –