在设计一个跨平台的文本编辑器时,我听说atom.io使用了node.js,它会慢吗?我听说崇高的文本使用C++,跨平台和制作GUI会付出很大的努力吗?我试图找出一些实现性能、跨平台、易于生成GUI和良好可维护性的最佳方法。
发布于 2018-12-15 07:40:52
Atom、VS Code和电子应用程序更普遍地用大量的开发时间来换取最终用户系统上的CPU周期和内存。我发现上述两个编辑器在中低层笔记本电脑上都很迟钝,而且它们对电池也不是特别好。
尽管如此,它们在开发人员工作站上的表现还是可以接受的,而且人们通常喜欢使用它们,因此它们必须具有足够的业务效率。
从软件的角度来看,编辑器响应时间依赖于大量的因素和规模,需要知道每个击键模块的数量。如果您想要执行语法突出显示、代码完成、自动缩进、集成静态分析等,那么保持UI线程IO绑定是很重要的。它应该花费几乎所有的时间等待用户去做一些事情。设计编辑器的其余部分以将计算绑定任务移动到能够异步向UI报告结果的工作线程将是最重要的。我还想特别强调一个好的策略来重新解析修改后的文本的重要性。它应该按照更改的文本数量而不是文档的长度进行缩放(就像每次击键时重新运行解析器一样)。
这些问题将支配您的编辑器的感知性能,而不是您所用的语言。
https://softwareengineering.stackexchange.com/questions/383033
复制相似问题