返回信息流做一个网上电子书阅读的网站,后台用C++实现的电子书解析,编译成DLL,然后C#调用,但是
发现运行在IIS里的时候,性能几乎下降了一般,哪位大牛做过这方面的东西吗,或者知道这里面的原因,如何去优化?
请大牛们指点!!!
这是一条镜像帖。来源:北邮人论坛 / dot-net / #672同步于 2009/12/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
请教大牛:.net调用C++DLL引起的性能下降问题
monarch
2009/12/14镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
在C#中调用c++的dll的逻辑怎样?
这种平台调用次数如果太多的话,性能就降下来了,
比如
for(int i=0;i<10000;i++)
{
调用c++ dll做电子书分析。。。
}
如果这样,每次调用都得P/Invoke解析,消耗太多时间,
可以把for循环放到c++逻辑中,这样就减少了解析时间。
【 在 monarch (一路向北) 的大作中提到: 】
: 做一个网上电子书阅读的网站,后台用C++实现的电子书解析,编译成DLL,然后C#调用,但是
: 发现运行在IIS里的时候,性能几乎下降了一般,哪位大牛做过这方面的东西吗,或者知道这里面的原因,如何去优化?
: 请大牛们指点!!!
: ...................
从系统日志看,这个其实耗费的时间没有多少,跨语言调用花费的时间只有几毫秒,这个时间相对于其他的时间来说开销基本可以略去
【 在 ahomer 的大作中提到: 】
: 在C#中调用c++的dll的逻辑怎样?
: 这种平台调用次数如果太多的话,性能就降下来了,
: 比如
: ...................
单次调用时间只有几毫秒,主要是你反复调用了多少次
【 在 monarch (一路向北) 的大作中提到: 】
: 从系统日志看,这个其实耗费的时间没有多少,跨语言调用花费的时间只有几毫秒,这个时间相对于其他的时间来说开销基本可以略去
没,我没这种循环,只是一次http请求P/Invoke一次
【 在 ahomer 的大作中提到: 】
: 单次调用时间只有几毫秒,主要是你反复调用了多少次
你怎么确定是因为调用C++的DLL引起的性能下降?
【 在 monarch 的大作中提到: 】
: 没,我没这种循环,只是一次http请求P/Invoke一次
从系统日志看,这个其实耗费的时间没有多少,跨语言调用花费的时间只有几毫秒,这个时间相对于其他的时间来说开销基本可以略去
我主要看你句话,然后觉得和题目有点矛盾了。。。我对这句话的理解是时间主要花在那个"其他时间“里,而不是调C++的DLL。
【 在 monarch 的大作中提到: 】
: 汗,当然是经过严格的测试了,难道能随便说啊
可能我没说清楚,这个其他时间指的是必要操作时间,每次http请求都会操作一次文件,从文件中提取数据,然后返回,这个过程需要耗费几百毫秒的时间,所以说基本可以略去
用C++写的测试程序跑过,调用同样的函数,在函数内部计时,IIS里面运行的话开销会增长两倍到三倍(对同一个函数)
【 在 shooter 的大作中提到: 】
: 从系统日志看,这个其实耗费的时间没有多少,跨语言调用花费的时间只有几毫秒,这个时间相对于其他的时间来说开销基本可以略去
: 我主要看你句话,然后觉得和题目有点矛盾了。。。我对这句话的理解是时间主要花在那个"其他时间“里,而不是调C++的DLL。