winffee:欢迎回到八月份 Visual Studio Code 的 Java 更新。在此更新中,我们将专注于性能改进和项目管理。
性能改进
IntelliSense (又称 Code Completion )
IntelliSense 是最常用的 VS Code 功能之一。在仔细检查了当前的设计和实现之后,我们找到了几个可以改进性能的地方。简而言之,客户端发送到语言服务器的请求数量以及语言服务器处理这些请求的能力会极大地影响 IntelliSense 的性能。因此,我们的改进集中在减少不必要的客户端请求和优化语言服务器的处理能力上。尽管改进是一个循序渐进的过程,但通过 8 月份的最新版本,我们已经看到了非常积极的成果。在我们的测试中,我们可以将性能提高 80 %以上。我们测试的细节是:
环境:
CPU:2.9 GHz 双核 Intel Core i5
内存:8 GB 2133 MHz LPDDR3
操作系统:macOS Catalina 10.15.6
VS Code 版本:1.48.2
测试使用的扩展:
扩展| 七月版本 | 八月版本
Language Support for Java(TM) by Red Hat | 0.65.0 | 0.66.0
Java Test Runner | 0.24.0 | 0.24.2
Project Manager for Java | 0.10.2 | 0.13.0
Visual Studio IntelliCode | 1.2.9 | 1.2.10
测试:
在具有 5000 余行测试代码的 Java 文件中,通过键入字符“ S”来触发 IntelliSense,然后等到提示弹出。分别对 7 月和 8 月的发行版重复 5 次。每次,我们都会测量客户端请求时间和语言服务器响应时间之间的时间间隔。
结果:
| #1 | #2 | #3 | #4 | #5 | 平均
七月版本 | 7420 | 6745 | 6653 | 5051 | 5063 | 6186.4
八月版本 | 923 | 412 | 469 | 600 | 752 | 631.2
单位:ms
Workspace 刷新
对于我们的用户来说,workspace 包含与 Java 项目无关的内容是很常见的。例如,在 Node 项目上工作,您的工作区可能包含“ node_modules”文件夹;使用 Git,您的工作区可能包含“ .git”文件夹。如果遇到这些情况,您可能会注意到刷新 workspace 的性能受到负面影响,因为需要处理这些不必要的内容。为了进行改进,我们引入了一个新配置“java.project.resourceFilters”,您可以在其中指定应从 workspace 刷新中排除的文件夹或文件。默认设置下,排除“ node_modules”和“ .git”文件夹。您可以通过单击 File->Preferences->Settings 菜单打开设置视图,然后在设置视图中搜索“ java.project.resourceFilters”。
项目视图
7 月,我们推出了项目视图。我们的目标是允许您通过此单一视图访问所有与项目管理相关的功能。8 月,我们将更多功能整合到了视图中。
创建 package 和 class
在项目视图上,可以通过右键单击源文件夹来创建 package 和 class 。对于 class,class 模板文件将自动生成。
编译和清除 workspace
编译 workspace 支持完整和增量模式。
Maven 整合
项目视图会自动检测 Maven 项目。您可以通过单击项目节点上的打开图标来快速打开 pom.xml 文件。
通过右键单击项目节点来运行 Maven 命令。
通过单击“Maven Dependencies”节点上的添加图标来添加依赖关系。
更多改进
我们在调试支持方面进行了改进,例如,在编辑器标题栏上添加了运行和调试按钮以进行单个文件调试,并为 JDWP 添加了新配置。有关更多详细信息,请参阅Debugger for Java。
更多信息
请不要犹豫,尝试一下!您的反馈和建议对我们非常重要,将有助于将来塑造我们的产品。
了解有关Visual Studio Code上 Java 的更多信息。
逐步探索有关 Visual Studio Code 的 Java 教程。
原文链接:Java on Visual Studio Code 的更新 – 2020 年 8 月
Visual Studio Code可以增量编译Java Web App项目吗? - java我是Visual Studio Code的新手。我正在尝试将其与使用Maven的现有Java Web应用程序项目一起使用。我已经下载了推荐的Java扩展,例如Java Extension Pack,Java Maven和Java Tomcat。在IntelliJ(我通常的IDE)中,我可以很快地从Java的少量编辑转到Tomcat中刷新的WAR。如果我编辑文…
关于 VS Code for Java 的 Java 11 升级winffee:自从引入 Java 11 的升级要求以来,我们收到有些用户反馈认为 Java 8 不再支持,其实这是不正确的。在此博客中,我们将为您做解释,并提供平滑快速而又不影响您项目的升级步骤。 关于升级 首先,Java 11 升级是为了运行 VS Code for Java,更具体地说,它是运行 Language Server for Java 扩展的…
我可以删除listView数组但不能更新listview吗? - java我花了一些时间在Google上搜索,但没有帮助。我有一个包含ArrayList的列表视图。我可以收集数组中的所有数据,在listView中显示它并删除数组,但不能更新listView-这样数据就会显示在屏幕上吗? 参考方案 是的,直到将列表视图滚动到下一个可见项目(或致电通知项目集更改),然后ListView要求适配器在第5个位置提供对象,例如,您将得到Ar…
(Android Studio)如何仅通过我的代码进行调试? - java当我尝试通过Android中的代码调试(使用Step Into,F7命令)时,调试器将引导我遍历所有不需要的系统类。例如,当我在下面的第二行放置一个断点(即“startActivity(ourIntent);”)时,执行点进入Activity.java> Instrumentation.java等,而不是进入我的Activity(即“myclass”)…
mongoDB注入 - javaJava中有一种通用模式可以避免mongoDB注入攻击吗?谢谢 参考方案 使用支持的驱动程序之一。不要将字符串反序列化为JSON并将其作为查询传递,例如不要这样做(在Ruby中):collection.send(query_type, JSON.parse(parameters)) 其中query_type和parameters是来自表单的字符串。但是,您必…