gpt4 book ai didi

java - 在 Eclipse/Intellij 中 Java 执行 "incremental compilation"的频率是多少?

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:20 24 4
gpt4 key购买 nike

我知道 Eclipse 使用它自己的 Java 编译器 (ECJ),它能够执行增量编译。从我发现的大部分阅读资料来看,这种编译通常是由保存操作触发的,但这似乎与您在键入单个代码单元/单词后几乎立即获得编译错误反馈的事实不符.我还没有找到任何文档或文献来说明触发的粒度(即每个单词、字母、行)?是否正在进行某种额外的后台代码分析?尽管除了语法错误检测之外,我看不出这如何能够检测只能通过编译过程揭示的语义错误。

最佳答案

编译器的紧密集成允许 Eclipse 在各种情况下调用编译器,其中两个与此问题相关:

术语“增量编译”通常是指在保存时编译,然后可能会触发编译更多依赖于已更改文件的文件。在技​​术术语中,这称为“构建”,它读取 .java 文件并生成 .class 文件。

“即输入即编译”提供了更直接的反馈。这种编译基于内存中的工作副本而不是文件。您甚至可以在不保存的情况下编辑多个依赖文件,并且编译已经可以看到在其他工作副本上所做的更改。在技​​术术语中,这称为“调和”。尽管此功能是通过调用完整编译器实现的,但协调不会生成任何类文件。

至于触发器粒度的原始问题:协调在脏区域的每个编辑器队列上工作。记录脏区是由编辑器中的击键触发的。然后以 500 毫秒的默认延迟轮询队列。

除了更直接的反馈之外,用户会体验到协调只会在编辑器中创建错误标记,而构建还会使这些标记在问题标记中可见意见。

关于java - 在 Eclipse/Intellij 中 Java 执行 "incremental compilation"的频率是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36298187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com