.net C 在Win32/COM方法上调用PInvoke时,通常有一个明显的性能下降吗?
我打算利用各种Win32方法,并希望更好地了解这样做的负面影响。
谢谢,
布莱恩。
我想知道有没有人有一个体面的解释或概述在使用DLLImport / PInvoke在Win32方法从负责的网络代码? 我打算利用各种Win32方法,并希望更好地了解这样做的负面影响。 谢谢, 布莱恩。 根据 MSDN C Calling Native Functions from Managed CodePInvoke has an overhead of between 10 and 30 x86 instructions per call. In addition to this fixed cost,marshaling creates additional overhead. There is no marshaling cost between blittable types that have the same representation in managed and unmanaged code. For example,there is no cost to translate between int and Int32. 根据我的经验,当P /调用本机功能时,绝对会有一个开销,但是通常性能下降并不值得担心。封送费用是要记住的。如果您正在传递大型结构,字符串等,那么性能成本将很快显现。 对于非常频繁调用的P /调用函数,您可能需要考虑将[SuppressUnmanagedCodeSecurity]添加到P / Invoke函数定义(参见MSDN C SuppressUnmanagedCodeSecurityAttribute)。这将使运行时停止堆栈步行,以确保调用者具有非管理代码权限。当然,请确保您在添加此属性之前了解安全性后果。 (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 如何通过apt-cyg安装cygwin / X
- 如何使Windows Forms .NET应用程序显示为托盘图标?
- win10系统下载安装以后喇叭爆音怎么处理
- Windows Phone 7 – Windows Phone开发Visual Studio 2012
- Windows – LogonUser – 来自系统服务的CreateProcessAsUs
- windows – 带双引号参数的exec
- 无法找到MSVCP120D.DLL或0x00007启动错误的解决方法
- Qt 5 QML应用程序,包含许多Windows或复杂的UI
- node-ffi模块的安装以及基于electron生成windows桌面应用程
- 怎么使用win10自带的刻录工具把ISO镜像文件变光盘?
- win10中edge内存占用高什么情况 如何解决
- winapi – Windows XP与Vista的SetThreadUILangu
- windows修改PowerShell(命令提示符)默认中文编
- edge浏览器js错误问题该怎么修复呢
- Windows下动态加载的库的地址范围
- windows-server-2008 – Windows Server 2008 R2
- windows-phone-8 – 适用于Windows Phone 8的企业
- windows – sysopen权限被拒绝
- Windows下wamp php单元测试工具PHPUnit安装及生成
- Windows – 无法从GitBash运行TASKKILL