为啥这个代码运行时会使系统运行的很慢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥这个代码运行时会使系统运行的很慢相关的知识,希望对你有一定的参考价值。

#include "stdio.h"
main()

int num;
while(num!='\n')
scanf("%d",&num);
printf ("%d",num);

当输入\n 时系统就变慢了,
那有什么方法能输入回车后终止循环

请问你这程序想干嘛?
首先你num根本没初始化
其次num是个整数你去和一个字符比较?
我不知道你是怎么输入的\n
总之你的程序从逻辑上就有很多问题
如果你是想检测回车的话至少应该这样用
#include "stdio.h"
int main()

char num;
do

scanf("%c",&num);
while(num!= 10);

printf ("%d",num);
return 0;


不过这里的printf ("%d",num); 没有意义
参考技术A 你程序的逻辑顺序有问题。
第一次while(num!='\n') 的时候,num的值是多少??
虽然系统会有一个默认值,但你的逻辑是错误的。
其次,while(num!='\n') 你的本意是要判断读入的字符是否为换行符。
但是你的num是个int变量,虽然运行是可以进行比较操作,但是是错误的逻辑。
参考技术B 就这死循环也不至于让系统慢吧 参考技术C \n就是回车,哪用输入‘\n’啊。

为啥导出到可运行的 jar 会使应用占用这么多空间?

【中文标题】为啥导出到可运行的 jar 会使应用占用这么多空间?【英文标题】:Why exporting to runnable jar makes the app take so much space?为什么导出到可运行的 jar 会使应用占用这么多空间? 【发布时间】:2016-07-16 12:38:37 【问题描述】:

背景

我使用 SWT、WindowsBuilder 和 Eclipse 作为 IDE,制作了一个可以在 Windows 操作系统(可能还有其他操作系统)上运行的小工具。

该应用旨在通过尽可能将图像转换为 WebP/Jpeg 来帮助开发人员最小化 Android 应用的大小。它可用here

问题

我想让人们更容易运行它,所以我称之为“导出为可运行的 jar”。

完成此操作后,我注意到一个仅占用几 MB(需要 SWT 和一个 exe 转换器文件)的应用程序需要超过 20MB 的存储空间。

我尝试了什么

查看文件结构,我发现:

导出向导只有 2 个步骤:选择导出为可运行的 jar,而这一步:

所以我不知道如何配置它。我尝试更改运行配置,但如果我删除额外的 jar,它无法运行:

Error: Could not find or load main class webpifier.Main

选择恢复默认条目,我得到了额外的罐子:

问题

这怎么可能?所有这些罐子都需要吗?是否有可能避免添加这么大块的文件?这些文件的用途是什么?

对于其他操作系统,仅替换 SWT 文件(和转换器文件)是否足以让应用程序运行?或者我也应该在其他操作系统上调用“导出为可运行的 jar”(这是 Java,我为什么要这样做?)?

【问题讨论】:

只有你知道,如果真的需要所有的罐子。也许您引用了未使用的 JAR?当您使用 Eclipse-RCP 或 SWT 时,所有需要的 Eclipse/SWT-JAR 也会被复制!) 【参考方案1】:

我将发表我的评论作为答案:

这怎么可能?所有这些罐子都需要吗?

只有你知道,如果真的需要所有的罐子。 所有引用到项目的 JAR 通常也会复制到分发文件夹(还有未使用的 JAR)。进一步:当您使用 Eclipse-RCP 或 SWT 时,所有需要的 Eclipse/ SWT-JAR 也被复制到分发文件夹!

我建议使用 Swing 而不是 SWT。 Swing 已经包含在 Java-Libs 中,但 SWT 没有。 所以你不需要分发所有的 SWT-JAR。

提示: 要减少应用程序的分发大小,请尝试删除所有:org.eclipse.*-Imports

有关 SWT 与 Swing 的更多重要信息,请参阅此处:Java Desktop application: SWT vs. Swing

【讨论】:

嗯,我不知道。这就是我问这个的原因。我使用了这些工具和这个功能,这就是我得到的。关于 Swing,我(很久以前)将它与 SWT 进行了比较,我发现 SWT 更优越,并且具有更好的原生外观和感觉。另外,由于项目已经完成,我认为转换为 Swing 将花费太多时间。我什至不认为使用 Swing 会有所帮助,除了删除“swt.jar”文件。您能否尝试将项目导出为可运行的 jar,看看可以做什么(当然不会破坏它)? “swt.jar”文件只有~2MB。剩下的就是我不明白的。 SWT.jar 可能引用了其他 org.eclipse.*.jar。或者您正在使用其他 eclipse.jar 中的类。看看你所有的import org.eclipse.*imports。此外:今天,swing 的原生外观在 Windows 上与其他应用程序并没有真正的区别。 com.ibm.icu* 是做什么用的?它是 11MB! @androiddeveloper:您说转换为 swing 会花费太多时间,但您的课程中只有 8 个课程(少于 2000 LOC)整个项目。我认为这是值得的麻烦!

以上是关于为啥这个代码运行时会使系统运行的很慢的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 OpenGL ES 代码在 iPhone 上运行缓慢?

为啥运行我的 js resizer 代码会使文档在 IE7 - IE11 和 MS Edge 中超过 100% 的窗口高度和宽度?

为啥这个互操作会使 .NET 运行时崩溃?

为啥电脑突然变的很卡?怎么办?

为啥这段代码在运行时会崩溃?它只是选项卡式视图中 SwiftUI 中的选择器

为啥导出到可运行的 jar 会使应用占用这么多空间?