Teigha BIM 有一个测试工具 TB_PerfTest,用于测量性能和内存消耗。
性能可以通过四种模式测量:
• 读取
• 写入
• 渲染
• 渲染和写入
并测量以下类型的内存分配数据:
• 工作集大小 (WorkingSetSize)
• 页面文件使用量 (PagefileUsage)
• 峰值工作集使用量 (PeakWorkingSetUsage)
• 峰值页面文件使用量 (PeakPagefileUsage)
• 已释放页面文件使用量 (PagefileUsageReleased)
• 页面文件使用量减少 (PagefileUsageDecreased)
命令语法为:
>TB_PerfTest <源文件> <测试名称> <迭代次数> [ST|MT|MT2|MT4|MT8|MT16] [PL]
其中:
[测试名称] - READ(读取), WRITE(写入), RENDER(渲染), RENDER_SAVE(渲染并保存), ALL(全部)
[ST|MT|MT2|MT4|MT8|MT16] - 多线程模式:所有逻辑 CPU|2|4|8|16。ST 表示单线程
[PL] - 使用部分加载模式
例如:
TB_PerfTest.exe "\sample.rvt" READ 3 ST
此示例使用样本文件“<span class="win-path">\sample.rvt</span>”在单线程中进行三次“读取”测试迭代。
测量性能
如前所述,有四种测量模式:
1) 读取(“READ”)— 测量文件加载(从磁盘)的持续时间。
2) 写入(“WRITE”)— 测量文件保存到虚拟流的持续时间。
3) 渲染(“RENDER”)— 测量文件渲染(到位图文件)的持续时间。
4) 渲染和写入(“RENDER_SAVE”)— 测量渲染和保存过程的持续时间总和。
在所有迭代结束时,该工具会计算持续时间的平均值。请注意,第一次测量对结果没有影响,因为通常第一次测量误差较大。因此,平均持续时间为:
AverageDuration = SUM(duration_2, … duration_N)/(N-1);
测量内存分配
内存分配测量的主要目的是查找文件加载的最大内存分配,以便在各种情况下检测非最优容器和分配。如果内存使用量从一次迭代到另一次迭代增加,也可能检测到内存泄漏。