Isabelle:版本Isabelle2013-2的性能问题

时间:2014-01-12 07:33:17

标签: java linux performance isabelle

我在Isabelle中遇到了性能问题(即重新发布的版本Isabelle2013-2)。 我使用 Isabelle / JEdit ,基于新界面。

所以之前,情况是我在表现方面遇到了一些麻烦。但现在情况更糟,因为我有时需要等待10秒才能进入右边。随着时间的推移,性能问题变得更糟,我必须在一小时左右后重新启动Isabelle。

我怀疑我可以更好地配置Isabelle或应用一些提高性能的技巧。

设备:
最近的CPU,它是一个intel i7 quadcore(移动labtop芯片),16GB内存,快速SSD硬盘。

软件:
64位arch linux(内核3.12.5-1-ARCH)
没有32位兼容库
我的java版本是:

   java version "1.7.0_45"
   OpenJDK Runtime Environment (IcedTea 2.4.3) (ArchLinux build 7.u45_2.4.3-1-x86_64)

我的理论文件大小为125KB,我正在使用的整个理论都在一个文件中,但目前我真的只想要一个文件。

症状: UI的右下角Isabelle仅显示约900mb。我有16GB的RAM,我应该配置java使用更多的RAM吗?有时单个过程会消耗600%的CPU,即Linux内核看到的6个内核。

我使用的技巧:

一个技巧是我在我正在处理的代码下面的一行插入*)。这会导致语法错误,并且不会检查以下代码。第二个诀窍是我去了时间面板,所有花了超过0.2秒的证据我注释掉并用sorry替换。

重新发布的两个Isabelle版本确实有很大改进!

有关如何改善Isabelle表现的任何建议或窍门?

1 个答案:

答案 0 :(得分:2)

关于性能调优的一些一般提示:

  • 需要区分Isabelle / ML(即基础Poly / ML运行时)与Isabelle / Scala(即基础JVM)。

  • Isabelle / ML:像i7这样的Intel CPU具有超线程功能,实际上是内核数量的两倍。在较小的移动机器上,通常最好将标称核心数限制为一半。请参阅Isabelle / jEdit / Plugin Options / Isabelle / General中的“threads”选项。使用电池时,您甚至可以进一步使用。

  • Isabelle / ML:使用x86(32位)Poly / ML通常可以提高性能。这仅与Linux相关,因为该平台通常缺少其他平台常规提供的x86库。使用庞大的x86_64很少有任何好处。 Poly / ML 5.5.x非常适合在32位模式的恒定空间中工作。

  • Isabelle / Scala:通过使用本机x86_64(这是默认设置)并提供大量堆栈和堆参数,可以提高JVM性能。

    • 主要的Isabelle应用程序包在JVM中引导了一些在某个地方硬连线的选项,但仍然可以进行编辑:

      • Linux:Isabelle2013-2 / Isabelle2013-2.run
      • Windows:Isabelle2013-2 / Isabelle2013-2.ini
      • Mac OS X:Isabelle2013-2.app/Contents/Info.plist

      例如,最大堆大小可以从-Xmx1024m更改为-Xmx4096m

    • isabelle jedit命令行工具是通过Isabelle设置环境配置的。另请参阅$ISABELLE_HOME/src/Tools/etc/settings以获取JEDIT_JAVA_OPTIONS的一些示例,这些示例可以复制到$ISABELLE_HOME_USER/etc/settings并进行相应调整。还可以通过jconsole监视JVM性能,以了解这是否真的是问题的根源。

  • Isabelle / Scala:Isabelle捆绑了某个JVM,默认情况下这是假设的。这种可变的Java版本的消除对于重新获得一些理智很重要 - 否则你永远不会知道你得到了什么。你确定你的OpenJDK实际上是在这里使用的吗?除非您编辑了一些Isabelle设置,否则不太可能。

Linux上的其他性能问题来源是图形。众所周知,X11上的Java / AWT比Windows和Mac OS X慢得多。在Linux上使用准本机GTK外观会进一步降低图形性能。