[英]Com calls to 32bit application on 64bit server slow
我有一個應用程序,我剛剛遷移到Windows 2008 R2 64位。 本質上它是一個C#.NET 4.0 WCF應用程序,它動態調用用VC6 C ++編寫的32位COM應用程序。
當我在桌面上運行這個Windows 7 32位時,COM調用速度要快得多。
服務器應該是一個更強大的數量級(盡管在HOSTED環境中)
有什么快速/簡單的事情我可以檢查試圖找到它的底部? 我今天到期是為了分配給虛擬機的資源,但同時也是如此。
這是一個64位調用32位COM的東西嗎?
謝謝!
從64位進程運行32位代碼非常耗時,因為它涉及Windows on Windows子系統(WoW)。 64位代碼和32位代碼不能在同一進程中運行,這意味着從代碼到32位dll的所有調用都必須通過進程和體系結構邊界,這涉及一些繁重的數據編組和函數調用編組。
http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/
進行一些分析以衡量應用程序在不同情況下的性能。
然后做什么給你最大的表現。
然而...
如果您可以訪問COM庫源代碼,那么最好的方法是在x64平台上重新編譯它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.