amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 7434|回复: 39
打印 上一主题 下一主题

KEIL 5编译龟速如何解决?

[复制链接]
跳转到指定楼层
1
发表于 2017-3-6 11:03:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新电脑,WIN7,E5-2630的处理器,由于原系统崩溃忘记备份,重装系统后,安装好KEIL5发现编译速度特慢,大概编译一个工程要6分钟之久,重装系统前大概只需1分钟左右,请问有没有遇到过同样的问题的,怎么解决的?
2
发表于 2017-3-6 11:06:15 | 只看该作者
换IAR 换IAR
3
 楼主| 发表于 2017-3-6 11:07:54 | 只看该作者

换编译器代价太大,再说周围的同事都用的KEIL,团队合作不便
4
发表于 2017-3-6 11:24:28 | 只看该作者
换固态硬盘
5
发表于 2017-3-6 11:25:53 | 只看该作者
是否每次编译都全部编译了啊?
6
发表于 2017-3-6 11:33:57 来自手机 | 只看该作者
开并行编译,换固态硬盘
7
发表于 2017-3-6 11:45:49 | 只看该作者
加个SSD吧,速度会快
8
发表于 2017-3-6 12:02:21 | 只看该作者
多大的项目,KEIL目前没见过这么久的,除了之前单位有加密软件,每次都相当于加密再编译
超慢的……

我认为你电脑哪个东西安得不对吧,建议系统重装……说说而已,IT解决之最终手段
9
发表于 2017-3-6 12:15:23 | 只看该作者
同时有MDK 和 IAR,以前不觉得,STM32F7的程序大一些,结果差距几倍啊,难道也是我设置问题?
10
发表于 2017-3-6 13:54:52 | 只看该作者
太久了, 是不是所有的库外设都全开?
11
发表于 2017-3-6 14:19:41 来自手机 | 只看该作者
内存够大的话可以考虑搞个ramdisk ,在内存中编译链接,速度超快,还不磨损硬盘,缺点是怕停电,因此最好用在笔记本上,另外就是关机之前一定要记得把文件拷到硬盘上。
12
发表于 2017-3-6 14:23:15 | 只看该作者
换IAR 换IAR 换IAR
13
发表于 2017-3-6 14:50:47 | 只看该作者
这个CPU主频有点低,如果KEIL是只用一个核心编译的话速度会很慢。就像altium designer一样,画PCB特卡
14
发表于 2017-3-6 17:58:19 | 只看该作者
记得有个选项是编译时开不开跳转信息,那个取消了编译也会快一点。
取消了之后,没办法通过F11跳转到函数所在位置~  
15
发表于 2017-3-6 20:54:34 | 只看该作者
里面有个跨模块优化,去掉那个勾,就和keil4一样快了
16
发表于 2017-3-7 07:25:45 来自手机 | 只看该作者
看起来E5至强CPU代替keil5全部性能也难
17
发表于 2017-3-7 09:12:06 | 只看该作者
去勾生成brown info
18
发表于 2017-3-7 09:12:38 | 只看该作者
去勾生成brown info
19
发表于 2017-3-7 09:14:24 | 只看该作者
http://www.amobbs.com/thread-5533364-1-1.html

虽然没找到根本原因,供参考
20
 楼主| 发表于 2017-3-10 08:15:59 | 只看该作者
说来也奇怪,之前公司同事的也慢,昨天下午大家突然都好了,真是怪事!感谢各位
21
发表于 2017-3-10 14:36:01 | 只看该作者
如果还是闲慢,就直接换天河二号来编译吧!~
22
发表于 2017-3-10 16:38:44 | 只看该作者
现在的KEIL 5都能把CPU 4个线程都跑到100%了,不过速度还是慢,试着把杀病毒软件给关掉,情况是好了一些。 4个线程都不满足,下次想整个AMD的8核16线程玩玩
23
发表于 2017-10-5 22:22:35 | 只看该作者
本帖最后由 hpdell 于 2017-10-5 22:29 编辑

是如何解决的,我也是遇到跟你一样的问题,

我的 cpu 是 E5-2670 C2
电脑内存 32G , 250G的三星ssd硬盘,
现在只要使用keil进行编译工程,电脑的cpu风扇会转的飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快飞快,有时也担心会吧电脑的cpu烧掉哟,
如果使用 iar 编译同一个工程,电脑cpu完全没有任何压力,编译速度很快

感觉这个编译时,跟固态硬盘或者是机械硬盘的关系不大,主要还是  keil 没有完全利用电脑cpu的原因吧,目前也不知道有什么好的解决办法 ??????????
24
发表于 2017-10-6 17:20:45 | 只看该作者
本帖最后由 Gorgon_Meducer 于 2017-10-6 17:22 编辑

你是什么license 类型?如果是floating licence或者是Flex的,这类问题可能是由于网络设置不对导致的。
你说某天大家突然都好了,这给我感觉你是floating license,然后突然某天,你们的局域网配置正常了
所以获取license的过程就变快了。

关于license获取影响速度的原理我给大家说一下:

1、首先 MDK 不支持多文件编译(--multifile ),即便你手工在命令行里面加入也不行,因为MDK本身
    就是一个.c一个.c的生成命令行然后编译的。与之相对, IAR支持多文件编译,这种情况下,IAR实际上
    只编译一次。
2、每次编译,ARM Compiler都要去获取一次license,我这里说的每次编译说的是每个命令行(每个.c),
    而不是你单机了下编译按钮。如果你文件较多,而获取license是通过局域网,任何局域网的延迟都要
    根据你目标文件的数量翻倍的。
3、Cross Compilation 实际上要把所有文件来回编译3次,也就是说总体时间 *3
4、有些目标处理器因为目标芯片自身的问题,需要编译器在最后的link阶段扫描机器码然后自动打补丁(ST有
    一些芯片就是这样),这个过程也是很慢很慢很慢的,如果你不幸是这类芯片,那么也是没有办法的
    (看起来楼主不是这类芯片)

综上所述,如果你想解决这类问题:
1、换standalong 的license
2、如果你没有条件用standalone的license,那么就想办法去看看floating license的网络配置吧。我默认
    你是有正版产品序列号的(PSN)。如果是这样,如果你的序列号的技术支持还没有过期,欢迎发邮件
    到 support-keil@arm.com 描述问题(用中文没问题)
3、如果你的技术支持已经过期(或者你用了D版),这类问题就是没法解决怎么办呢?还是有另外一个
    办法的——那就是不用IDE进行编译,用批处理。思路是这样的:

    在 Optioin for Target 的 output里面有一个选项 “Create Batch File”。选中以后,只要进行一次编译,
    在你的工程文件夹里就会多一个批处理文件。你可以去修改这个批处理文件,手工把多个命令行改为
    一个命令行——也就是使用多文件编译(也就是加入 --multifile)

    http://infocenter.arm.com/help/i ... r1359124934478.html

    以后编译用 批处理文件,这样就只会去获取一次License,时间会极大的缩短,编译的效果也比以前好,
    因为 多文件编译 效果就是比普通的赞(相对单个文件独立编译,多个文件一起编译的时候编译器视野
    更宽,做优化所需的信息更充足)

25
发表于 2017-10-6 17:51:05 | 只看该作者
我猜是两个原因综合影响的结果:
1,没有用管理员权限运行mdk;
2,由于不是管理员权限运行的mdk,所以导致系统内置的反病毒程序对每个新生成的文件都执行扫描;

所以,最好的做法是在组策略中启用管理员运行本地程序,并禁止反病毒程序。
我就是这么做的,以前也遇到过你的情况,即便是IAR也一样慢。
做开发的电脑不要担心病毒,开发者又不会乱来。
26
发表于 2017-10-12 15:01:34 | 只看该作者
Gorgon_Meducer 发表于 2017-10-6 17:20
你是什么license 类型?如果是floating licence或者是Flex的,这类问题可能是由于网络设置不对导致的。
你 ...

是在bach文件的--via后添加么,感觉是飞快
27
发表于 2017-10-24 16:11:43 | 只看该作者
好帖,留名
28
发表于 2017-10-26 19:28:08 来自手机 | 只看该作者
iar比MDK好用多了
29
发表于 2017-10-26 19:32:05 来自手机 | 只看该作者
MDK连中文字串还有BUG,真的很差劲
30
发表于 2017-11-5 15:44:35 | 只看该作者
Gorgon_Meducer 发表于 2017-10-6 17:20
你是什么license 类型?如果是floating licence或者是Flex的,这类问题可能是由于网络设置不对导致的。
你 ...

按大师所说,断网无法编译了哦?
31
发表于 2017-11-5 18:59:43 | 只看该作者
gamethink 发表于 2017-11-5 15:44
按大师所说,断网无法编译了哦?

如果是Floating License或者Flex的,的确断网无法编译。如果是Standalone的,就无所谓啊。
32
发表于 2017-11-5 20:32:13 来自手机 | 只看该作者
看看进程里面是不是杀毒软件在捣鬼
33
发表于 2017-11-6 14:39:29 | 只看该作者
感觉HAL库编译起来确实起来比较慢,即便PC机配置很高。标准库就比较快。
34
发表于 2019-10-11 20:13:29 | 只看该作者
JackFrost 发表于 2017-3-10 16:38
现在的KEIL 5都能把CPU 4个线程都跑到100%了,不过速度还是慢,试着把杀病毒软件给关掉,情况是好了一些。  ...

不知道你用arm compiler 5还是6?用5的话选择使用多CPU跟单CPU编译基本上一样的,选择ARM COMPILER 6的话确实可以因为多CPU内核而快得多
35
发表于 2019-10-11 20:36:54 来自手机 | 只看该作者
severewinner 发表于 2017-3-6 12:02
多大的项目,KEIL目前没见过这么久的,除了之前单位有加密软件,每次都相当于加密再编译
超慢的……


如果是HAL库,重新编译5分钟跟正常
36
发表于 2019-10-11 22:40:05 | 只看该作者
F4的话,2.13以后的HAL支持AC6,编译飞快
37
发表于 2019-10-11 23:55:19 | 只看该作者
ST的 话换TrueSTUDIO 然后打开并行编译,免费没有任何版权问题
38
发表于 2019-10-11 23:59:20 来自手机 | 只看该作者
标记,我也遇到过,非常火大。
39
发表于 2019-10-12 02:57:47 | 只看该作者
3700x+b450
40
发表于 2019-10-12 04:19:54 | 只看该作者
电脑有待升级
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2020-2-28 16:00

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表