① 编译程序所需要的时间和电脑的性能有关系么
有关系的
当需要编译工程的复杂度一定的时候,电脑性能越好,编译所需要时间越短;反之,则时间越长。
当电脑性能一定的时候,工程越复杂,则编译所需要的时间越长;反之,则时间越短。
② i++是什么意思
++i 和 i++在单独使用时起到的作用就是 i=i+1,即后一个值是前一个值加一。
++i是使用i之前先使i加一。i++是使用i之后再加一。如果不能理解,那么可以理解为:++i是先计算,再操作,i++是先操作,再计算。
例如:a = ++i,相当于 i=i+1; a = i; a = i++,相当于 a = i; i=i+1;
(2)最短编译时间算法扩展阅读
“++”符号是编程语言中的自增运算符,作用是在运行后将变量的数值自动加一,“++”符号所处的位置不同,运算规则也不同,当“++”放在变量前方时,如 ++i,此时的作用是先将i变量中的数值进行加一运算,然后再将运算后的数值加入运算,而i++是先将i中的数值加入运算,然后再自加一。
i++的用法:
classYanShi{ publicstaticvoidmain(String[]args){ inti=3; i=i++; System.out.println("i="+i);}}//输出是i=3
classYanShi_01
{ publicstaticvoidmain(String[]args){ inti=3,j; j=i++; System.out.println("i="+i+",j="+j);}}//输出i=4,j=3
③ Xcode 构建速度优化(一)衡量编译时间
随着项目不断迭代,工程文件越来越多,引用的三方库也越来越多,这些直接导致编译时间的不断增加,完整编译一次项目动辄需要五分钟以上时间,实在有些影响开发效率,是时候来一波提速了。
为编译和构建提速,首先我们需要对速度有一个衡量标准:准确获得构建用时
首先,我们需要定义要衡量和优化的内容。 有两种选择:
xcode默认情况下会跟踪所有构建,我们可以通过更改xcode相关设置,来在活动查看器中显示出构建时间,通过命令行:
每次编译成功后,会在Successed之后显示出所用时间:
Xcode Build Timing Summary是Xcode10中加入的用于查看获取构建时间和发现用时瓶颈方面的最有利工具。 可以通过Proct->Perform Action->Build With Timing Summary来开启:这样在 Build Log 的末尾就会添加 Timing Summary Log。我们可以通过这个 log 看到哪个阶段是耗时的,便于我们进行优化。
如上图中: xib阶段的编译耗时明显是比普通c文件要多的,意味着我们可以通过减少xib方式来优化提升速度
而c文件的编译用时比总时间还要长,是因为c文件是并行编译的
在命令行中同样可以开启这个功能:
常用的第三方工具有 BuildTimeAnalyzer 、 xcode-build-times-rendering 、 XCLogParser 。
BuildTimeAnalyzer可以统计可以得出某个文件的类型检查时长,每个表达式的类型检查时长。
xcode-build-times-rendering是一个Ruby编写的第三方工具,可以方便地分别测量目标的构建时间并在图表上显示它们,使用gem安装
接下来使用这个工具自带命令配置项目
然后构建项目并生成报告:
这个工具使用上比较简单,缺点是只能从宏观上生成各个target编译的整体图标,无法详细列出各个内部编译明细
XCLogParser可以详细列出各个Target和内部每个文件的编译耗时,对我们分析编译时间瓶颈非常有帮助,它的工作原理主要是做为解析器,通过解析xcode编译生成的xcactivitylog日志来记录
安装:
编译项目后,进行安装
安装成功后通过命令:
会自动在当前目录的 build/xclogparser/reports/ 路径下生成报告,其中--project参数需要设置为待分析项目的名字,并注意当前在终端切换到希望写入日志的目录。
报告截图:
这个工具将作为我们后面分析提升编译构建速度的主要使用工具。
经过我多次在不同时间段,不同电脑上不断尝试编译,
我发现编译耗时是一个比较玄的东西,及时在同一台电脑,同一个项目, 同一套环境配置下,编译用时也会随着电脑当前状态(包括同时打开进程、散热等等)上下大幅跳动,就像算法时间复杂度一样,有时候我们明明做了一些细微的优化,但是结果反而是编译耗时增加了,这是很正常的事情
所以,衡量这个标准需要我们取多次试验中的平均值作为参考。
④ 影响算法执行时间的因素主要有哪些
影响算法执行时间的因素包括:
1、算法本身选用的策略;
2、问题的规模;
3、书写程序的语言;
4、编译产生的机器代码质量;
5、机器执行指令的速度等。
为便于比较算法本身的优劣,应排除其它影响算法效率的因素。从算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间量。
(4)最短编译时间算法扩展阅读:
缩短算法时间的方法:
1、选择合理的存储结构。
数据的存储结构,分为顺序存储结构和链式存储结构。顺序存储结构的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系;链式存储结构则神竖握是借助指示元素存储地址纤搭的指针表示数据元素之间的逻辑关系。
2、使用直接初始化。游庆
与直接初始化对应的是复制初始化。
3、减少除法运算的使用。
无论是整数还是浮点数运算,除法都是一件运算速度很慢的指令,在计算机中实现除法是比较复杂的。所以要减少除法运算的次数。
⑤ C语言多充循环,运算次数多,编译时间很长,又无法估计最终需要多久,怎么办
如果要减少时间 那么优化代码,或者直接改进算法
如果要预测时间,那么大致估计一下循环的次数,然后在固定的某个循环中加一个打印,通过打印频率来估算总时间
⑥ python编译时间长
没有尾递归优化。
因为某些编译型语言(如C)的编译器有尾递归优化,所以递归算法效率并不低。但是python并没有尾递归优化。
Python是一种广泛使用的解释型、高级和通用的编程语言。[1]Python由荷兰数学和计算机科学研究学会的GuidovanRossum创造,第一版发布于1991年,它是ABC语言的后继者,也可以视之为一种使用传统中缀表达式的LISP方言。
⑦ 我应该买什么PC来获取Quartus II的最快速编译时间
最后修改: 2012 年9 月05 日
产品类别: 设计软件
产品领域: 安装/授权(设计软件)
产品子领域: 操作系统支持/系统要求
标题说明Altera为Quartus03 II 只推荐最低硬件要求,最低可用物理RAM,和交换空间。这些推荐是在载有Quartus II的readme.txt格式中和在器件支持版本注释中,存在于Quartus II Development Software documentation page最低要求使Quartus II 能够运行。如果您具有大的设计和想要最佳编译时间,Altera建议更高的配置。 Quartus II需要大量的处理器和存储器资源。CPU速度是影响编译次数性能的主要因素。请考虑多核处理器和多CPU的配置,从而利用多线程编译。使用分化快设计和增量式编译来完全利用可用内核。请参考 Quartus II手册的第二卷的Recing Compilation Time章节。除此之外,解决以下三个瓶颈:通过处理器最大化芯片上的缓存访问最小化虚拟储存器的使用最小化硬盘访问时间通过处理器最大化芯片上的缓存访问选择具有大量的芯片上缓存的CPU。最小化虚拟储存的使用使用64-位体系结构和操作系统,伴随足够量的快速速度等级RAM。随着器件大小和软件复杂性的增长,内存使用也在增加。针对较新的器件系列(Stratix03 III 和更新的版本)的设计比用于32位应用的RAM的2GB需要更多,所以使用64位操作系统和软件。对于一个64位系统,对于更大的器件系列,一个单编译应该已经访问至少RAM的8GB (安装8到10GB)和更多。对于每种器件的最低安装的RAM信息,请参考器件支持版本注释,存在于Quartus II Development Software documentation page。最短的硬盘访问时间使用快速或固态硬盘安装一个本地SCSI或基于SATA的体系结构。磁盘也可以被RAID条带化,以便更快的访问。 使用网络磁盘可以是编译时间的一个显着地瓶颈。如果您必须在网络硬盘上存储工程源,Altera建议使用网络文件系统的源文件创建一个本地工程,保持项目目录当地和源文件远程。Quartus II 只读取几次源文件,但是需要访问Quartus II数据库(db and incremental_db)很多次。补充注释从32位转换到64位 OS并且软件可能不会减少编译时间。64位Quartus II使能够访问每进程较大的储存映射(没有2GB限制),但是使用64位OS或软件时可能看不到提高,如果我们的设计没有达到2GB限制并且在32位OS上使用低虚拟储存。您可能看到编译次数的稍微降低,由于64位进程的较多开销。Quartus II 10.0的编译次数性能和更新的64位对比32位(64位机上)是可比较的,如同Windows OS的性能对比相等的Linux (32位对比32位,或者64位对比64位)。
⑧ 程序的编译速度与程序的执行速度
执行与编译。。也有挂钩!。。执行、编译速度又跟硬件有关!用 WEB来说 第一次编译比较慢!后面这次访问就快多了!这跟缓存有关。。还有就是代码的问题。。 多次的循环判断也会造成系统执行变慢!。。在提升速度方面 主要就是俩种方法 1.完善的代码 2.提高硬件了!可能我说的比较片面!别的兄弟可以继续补充!
⑨ 编译速度最慢的是 C++ 吗
编译察慧散速度一般取决机器和编译时的解析代码算法,其次取决代码量,如碧兆果代码有库的话,使用库而少量代码作败氏为本地编译的话,速度会非常快,但是本地代码大于库代码量的时候,略显难度