Rascal 来自util::ResourceMarkers的addMessageMarkers非常慢

Rascal 来自util::ResourceMarkers的addMessageMarkers非常慢,rascal,Rascal,来自util::ResourceMarkers的addMessageMarkers方法非常慢;添加一条消息可能需要几秒钟 以带有一个Java文件的Java项目HelloWorld为例: public class HelloWorld { public static void main(String[] args) { int i = 42; System.out.println("Hello World! with value: "+i); } } 先做 imp

来自util::ResourceMarkers的addMessageMarkers方法非常慢;添加一条消息可能需要几秒钟

以带有一个Java文件的Java项目HelloWorld为例:

public class HelloWorld
{
   public static void main(String[] args) {
     int i = 42;
     System.out.println("Hello World! with value: "+i);
   }
}
先做

import util::ResourceMarkers;
然后跑

addMessageMarkers({error("numLiteral, value:42",|project://HelloWorld/HelloWorld.java|(83,2,<4,10>,<4,12>))});
addMessageMarkers({error(“numlateral,value:42”)|project://HelloWorld/HelloWorld.java|(83,2,,))});
需要7-8秒

请注意,当我们将位置更改为不存在的位置时,如

addMessageMarkers({error("numLiteral, value:42",|file://dummy.java|(83,2,<4,10>,<4,12>))});
addMessageMarkers({error(“numlateral,value:42”)|file://dummy.java|(83,2,,))});
然后它运行得更快,没有任何警告

因此,我有两个问题:

  • 一,。为什么addMessageMarkers()运行得这么慢,我可以更改一些内容使其运行得更快吗?
  • 二,。addMessageMarkers()是否可以返回无法添加的消息。

顺便说一句,昨天我发布了一个关于如何构建一致位置的问题,其动机是我想用一组更大的(正确的)消息测试addMessageMarker。当传递更多的消息时,运行时间也会增加,我还没有确切的数字。

在2014年11月(0.7.0)发布之前,由于锁争用错误,这一速度过去很慢,但现在预计会很快。你在那个版本上吗?不,抱歉搞混了,我会尽快升级,并在以后发布任何帖子之前检查版本。谢谢,这还是个好问题。