为什么基于Java的编辑器通常比较慢,因为Java据说在预热阶段之后会很快出现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (4)
  • 关注 (0)
  • 查看 (239)

好吧,我知道大多数人都说:“现在Java并不慢,它只是有一个缓慢的启动阶段”,但是没有人告诉我使用NetBeans、Eclipse或jedit就像Visualstudio或TextMate那样有反应。即使跑了几个小时的“热身”时间。哦,我承认,启动时间肯定是个问题,但我说的是一般的反应能力。例如,当调整窗口大小时,Jedit有一个明显的滞后。

一个合理的苹果与苹果的比较,我认为,将是jedit(或任何基于java的文本编辑器)与TextMate,site。

问题在于,“如果NetBeans/Eclipse完全用C重写,并具有相同的功能集,您会期望它具有与当前相同的性能特征吗?”

有什么想法吗?

[1] http://www.picksourcecode.com/articles/explan.php?id=6c9882bbac1c7093bd25041881277658&ems=9a0fa83125d48ab7258eab27754dd23e&lg=10

[2] https://gist.github.com/972234

[3] http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/BasicEditor.htm compile/run it like java -cp .;swt\win32.jar;jface/* BasicEdito

[4] http://twitpic.com/4xi8ov

提问于
用户回答回答于

Eclipse是一个大型的IDE--它实际上不是一个基本的文本编辑器--也许它只是在尝试在启动时完成比基本文本编辑器所做的更多的工作.

用户回答回答于

请注意,不要将默认内存分配中的差异与内存中的差异混淆--当任务要求程序分配比默认内存更多时使用的。

regex-dna,反向补体,二叉树,k-nucleotide,mandelbrot需要分配内存.

还请注意,有些程序是为多核编写的,并分配额外的缓冲区来累积来自多个线程的结果。

用户回答回答于

要完成所有这些“动态”代码语法检查和突出显示,基本上必须编写编辑器才能理解(这意味着lex、解析、类型检查、语法验证。等等)Java语言,并在之间的每个中间状态验证文本编辑器的内容,从一个几乎空的类开始,然后完成程序。

另外,为了交叉引用完整性,必须保存足够的关于内存中所有其他类的信息,这样才能真正确保在调用对象上的方法时,它确实存在于“其他”对象上。

更不用说所有其他地方都有索引,等等。

简而言之,它的速度很慢,因为它做了很多事情,即使它所做的所有事情都没有立即得到一个只关心屏幕上字母的人的赞赏(而不是IDE的所有特性)。

所属标签

可能回答问题的人

  • 嗨喽你好

    7 粉丝480 提问8 回答
  • uncle_light

    5 粉丝518 提问7 回答
  • 富有想象力的人

    3 粉丝0 提问6 回答
  • 人生的旅途

    10 粉丝484 提问6 回答

扫码关注云+社区

领取腾讯云代金券