为啥这个代码运行时会使系统运行的很慢
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% 的窗口高度和宽度?