我有一个很长的模拟,我需要提高它的性能。 我在日志文件中看到如下消息:"在GC期间内存不足,将尝试基于磁盘的GC"这需要大量的模拟时间。什么是斯特曼当时做的,我怎样才能消除它以改善运行时间?
答案 0 :(得分:1)
如上所述,Specman正在进行基于磁盘的GC,因为在常规GC(在该过程中消耗内存)期间内存不足。写入磁盘很慢,这就是您的模拟速度慢的原因。 使用config mem -disable_disk_based_gc。这将激活动态GC,这比基于磁盘的GC快得多,并且在常规GC的过程中消耗的内存更少。
答案 1 :(得分:0)
Specman正在进行垃圾收集(gc)以释放不再使用的对象的内存。一般来说,这很好,因为否则你必须自己做,就像在C / C ++中一样。 您可以使用config memory命令控制GC阈值和增量。使用较低的阈值来防止内存不足。
答案 2 :(得分:0)
你得到这些消息,因为specman正在尝试进行垃圾收集,并且在此过程中内存耗尽,因此它切换到基于剑麻的gc。 为了提高性能,可以增加optimal_process_size以为gc提供更多的内存,或者禁用基于磁盘的gc。 在后一种情况下,specman将在飞行中使用gc更快
答案 3 :(得分:0)
你的模拟缺乏Ram。 Specman尝试使用磁盘驱动器来访问更多内存。 磁盘访问速度很慢。 除了为gc_threshold和optimal_process_sise配置更好的值之外,您还可以使用动态GC来获得更好的性能。
答案 4 :(得分:0)
Specman正在使用磁盘空间进行垃圾收集。它速度较慢但使用较少的CPU。在配置中,有一个取消光盘垃圾收集的选项。