[返回博客](/cn/blog) # Teigha BIM：测量性能和内存分配

Ivan Shulga 五月 11, 2017 [\#rvt](/cn/blog/tag/rvt) [\#rfa](/cn/blog/tag/rfa) [\#performance](/cn/blog/tag/performance)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

Teigha BIM 有一个测试工具 TB\_PerfTest，用于测量性能和内存消耗。  
性能可以通过四种模式测量：  
• 读取  
• 写入  
• 渲染  
• 渲染和写入

并测量以下类型的内存分配数据：  
• 工作集大小 (WorkingSetSize)  
• 页面文件使用量 (PagefileUsage)  
• 峰值工作集使用量 (PeakWorkingSetUsage)  
• 峰值页面文件使用量 (PeakPagefileUsage)  
• 已释放页面文件使用量 (PagefileUsageReleased)  
• 页面文件使用量减少 (PagefileUsageDecreased)

命令语法为：  
**&gt;TB\_PerfTest &lt;源文件&gt; &lt;测试名称&gt; &lt;迭代次数&gt; \[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**

此示例使用样本文件“&lt;span class="win-path"&gt;\\sample.rvt&lt;/span&gt;”在单线程中进行三次“读取”测试迭代。  
测量性能  
如前所述，有四种测量模式：  
1\) 读取（“READ”）— 测量文件加载（从磁盘）的持续时间。  
2\) 写入（“WRITE”）— 测量文件保存到虚拟流的持续时间。  
3\) 渲染（“RENDER”）— 测量文件渲染（到位图文件）的持续时间。  
4\) 渲染和写入（“RENDER\_SAVE”）— 测量渲染和保存过程的持续时间总和。

在所有迭代结束时，该工具会计算持续时间的平均值。请注意，第一次测量对结果没有影响，因为通常第一次测量误差较大。因此，平均持续时间为：  
AverageDuration = SUM(duration\_2, … duration\_N)/(N-1);

测量内存分配  
内存分配测量的主要目的是查找文件加载的最大内存分配，以便在各种情况下检测非最优容器和分配。如果内存使用量从一次迭代到另一次迭代增加，也可能检测到内存泄漏。

## 今天就开始行动

**免费试用 ODA 软件 60 天。  
无风险，无需信用卡。**

[免费试用](https://www.opendesign.com/cn/free-trial)
