2014-01-21 31 views

回答

1
  • const,以防将来写道,IEEE std 1800-2012 § 6.20.6“常量常量”状态“......一个常量可以模拟期间设置...”,这表明它是由卖主以决定是否应该对性能进行任何优化。
  • static将把变量放入共享内存。根据仿真场景,它可能会帮助或伤害性能。实际的性能影响是特定于模拟器的,所以您需要运行自己的基准测试。 IEEE std 1800-2012 § 6.21“范围和寿命”的更多信息。

对于一个小项目,性能影响可以忽略不计。对于大型项目,性能需要分成几类:内存使用率和内存访问时间。 static变量可以权衡较小的内存占用(共享内存)和较长的查找时间(静态变量的内存地址可以远离对象数据的其余部分)。 const不太可能增加任何负面表现。

获得一些基本性能数据的最简单方法是用$finish(2)结束仿真。请参阅IEEE std 1800-2012表20-1诊断$完成。如果模拟器符合标准,这将报告仿真时间,位置和有关仿真中使用的内存和CPU时间的统计信息。

使用ModelSim 10.1d提供的example,所有组合均报告相同的内存使用情况。运行时间仅受打印方法调用次数影响,而不受const/static属性的影响。

如果我猜的话,性能会(有序最好更糟):

  1. static method
  2. stringconst stringstatic方法
  3. const static string
  4. static string
  5. const string
  6. string
相关问题