datawindow.net 的性能问题
我使用dw.net 1.5在.net下开发报表,发现在性能测试时,如果对它施加比较大的压力,就很容易会出现CPU 100%的问题,抓bump后分析,发现多个线程都阻塞在DataWindowInterop.Services.LoadDWFromLibraries这个方法处,例如其中一个线程的调用栈如下:
Thread 46
ESP EIP
0x0531f2f8 0x03b47729 [FRAME: InlinedCallFrame]
0x0531f2e8 0x03763244 [DEFAULT] [hasThis] I DataWindowInterop.Services.LoadDWFromLibraries(SZArray String,String,I4)
0x0531f380 0x03762ea0 [DEFAULT] [hasThis] I Sybase.DataWindow.Shared.NarrowDownDataWindowObject(String,String,ByRef Boolean,ByRef Boolean,ByRef String)
0x0531f3a8 0x03762c37 [DEFAULT] [hasThis] Void Sybase.DataWindow.DataStore.RecreateDataStore()
0x0531f3c4 0x03762b67 [DEFAULT] [hasThis] Void Sybase.DataWindow.DataStore.set_DataWindowObject(String)
根据调用栈分析应该问题就出现在初始化DataWindow.DataStore时,例如我的代码如下:
Dim ds As Sybase.DataWindow.DataStore = New Sybase.DataWindow.DataStore
......
pblclass = New rplupdate.COClass_n_rplupdateClass
不知道各位是否遇到过这种情况,google的一片英文文章,说也在大压力时遇到这种情况,但没有给出解决方案:
地址:http://objectmix.com/dotnet/106453-dw-net-unstable-havy-loaded-servers.html
[解决办法]
试试datawindow.net2.5
[解决办法]
没试过,帮你顶了,楼下的兄弟继续
[解决办法]
没试过,帮你顶了,楼下的兄弟继续
[解决办法]
用pb开发web应用的还是凤毛麟角
[解决办法]
用spy++调度? 具体没做过, 你所说的大压力是返回的数据量大(不用什么逻辑处理,只是返回量大,类似select * from table); 还是计算量大(即涉及大量数据的计算然后返回较少的结果集);
一般对于后者更有意义,因为实际应用中就应该避免大量数据同时load进dw中!
如果是第二种情况,请先试试独立运行你的sql语句(或sp),看消耗的时间,跟你用dw进行对比,就基本知道是否dw的问题.
[解决办法]
跟你说实话,pb中本来是没有多线程的,你非要多线程,可以考虑shardobject
要不就用新版,下一步dw.net将会是完全托管的代码,就不会有你说的问题了。
现在你只能想躲开他。