簡體   English   中英

Com在64位服務器上調用32位應用程序的速度很慢

[英]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/

進行一些分析以衡量應用程序在不同情況下的性能。

  • 編譯為Any-CPU,在x64上運行
  • 編譯為x64,在x64上運行
  • 編譯為x86,在x64上運行

然后做什么給你最大的表現。

然而...

如果您可以訪問COM庫源代碼,那么最好的方法是在x64平台上重新編譯它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM