Intellij IDEA为每个调试会话创建多个进程?

时间:2016-03-20 20:11:12

标签: java debugging intellij-idea

每次在IDE中点击调试按钮都会创建一个在操作系统上运行的新进程。

enter image description here

有没有办法配置东西,以便在点击调试按钮时,我的操作系统上只能运行一个JAVA进程?

我所知道的是,如果我点击调试面板中的红色停止按钮,该数字将减少。只要我记得在每次我可以管理正在运行的进程数量时点击调试按钮之前停止。但这很容易忘记。此外,一旦我有5-10个运行的调试会话,将它们全部删除是非常繁琐的。我必须转到Run->Show Running List并显示“VM Connections”列表,我必须逐个删除它们。这个列出它们的UI组件通常会消失,我必须再次将它拉出来。有没有办法一次性结束所有这些过程?

5 个答案:

答案 0 :(得分:10)

你不能做OS宽AFAIK,你也不希望它那样;有多少其他 Java进程正在运行与调试会话无关? (Intellij将是其中之一)

您可以在运行配置设置中将一个或多个配置设置为“仅限单个实例”;它是对话框右上角的复选框。这将迫使你在启动另一个配置之前杀死任何使用该配置的运行。

答案 1 :(得分:4)

IntelliJ Idea 2017

选中此复选框:

Run -> Edit configurations -> Single instance only(右上角)

在运行下一个实例之前,它不会让你运行另一个实例。

答案 2 :(得分:2)

来自IntelliJ IDEA 2016.1 Help /Run/Debug Configuration

" IntelliJ IDEA 2016.1帮助/运行/调试配置:远程

常用选项

仅限单个实例
如果选中此复选框,则无法多次启动此运行/调试配置。 每次启动新的运行/调试配置时,IntelliJ IDEA都会检查是否存在相同运行/调试配置的其他实例,并显示确认对话框。如果在确认对话框中单击“确定”,则将停止第一个运行器实例,下一个实例将取代它。 当某些资源的使用可能导致冲突时,或者当启动两个相同类型的运行/调试配置时,会消耗太多的CPU和内存资源,这是有意义的。 如果未选中此复选框,则可以根据需要启动任意数量的运行程序实例。这样,每个跑步者将从“运行”工具窗口的自己的选项卡开始。
"

答案 3 :(得分:0)

Intellij IDEA的更新

对于所有想知道每次执行编译/调试/运行并且仅运行一个实例的情况下,每次发生第二个Java进程(大约有100 MB内存)的人:该进程就是并行运行的Compile Server到主IDEA并接管编译。原因是内存占用量和性能较低。

The feature exists since 2012, but was not enabled by default.

答案 4 :(得分:0)

公司中我们所有人都拥有def signup(request): if request.method == 'POST': form = SignupForm(request.POST) if form.is_valid(): user = form.save(commit=False) user.is_active = False user.save() current_site = get_current_site(request) mail_subject = 'Activate your Sentizer account.' message = render_to_string('acc_active_email.html', { 'user': user, 'domain': current_site.domain, 'uid':urlsafe_base64_encode(force_bytes(user.pk)).decode(), 'token':account_activation_token.make_token(user), }) to_email = form.cleaned_data.get('email') email = EmailMessage( subject=mail_subject, body=message, to=[to_email], reply_to=[to_email],headers={'Content-Type': 'text/plain'}, ) email.send(fail_silently=False) messages.info(request,"Please confirm your email to be able to login") return HttpResponseRedirect(reverse_lazy('accounts:login')) else: form = SignupForm() return render(request, 'accounts/signup.html', {'form': form}) ,在IntelliJ Idea版本之后我们都面临这个问题。解决方案出乎意料。如下图所示,有一个名为2019.2.3的项目,默认值为On frame deactivation

在这种情况下,当我们在Update classes and resources上时,我们正在更改一个简单的东西,并且正在更改当前窗口(例如,将chrome放在前面以测试更改),每个{{1} }它正在创建两个进程(一个用于debug mode,一个用于deactivation on idea frame),因此您可以想象可以结束多少个进程。我个人有时有12个流程!

答案是将此值更改为building。因此,每次更改班级时,我都会手动hot swap中的Do nothing,并且资源只会刷新一次。

我们试图更改堆大小或其他解决方案,但它们对我们无效。

enter image description here