A comparison between lcc-win32, gcc, and Intel's icl compiler

C语言编程工具套装:Dev-Cpp、lccwin32与lccwin64安装包 本文还有配套的精品资源,点击获取 简介:C语言作为一种高效的编程语言,在系统开发和嵌入式领域得到广泛应用。本压缩包提供了三个编译工具:Dev-Cpp-5.11-TDM-GCC-4.9.2-Setup、lccwin32和lccwin64,为不同需求的开发者提供全面的C语言编译环境。Dev-Cpp是初学者友好的集成开发环境,提供了源代码编辑器、调试器和构建工具。lccwin32... 阅读详情

Comparison details:

The best compiler for the intel processors is surely icl, the compiler of Intel Corporation. It benefits of the inmense resources and know-how of Intel Corp.

GCC is a compiler that shares with lcc-win32 its low price, but has a long development history, and a team of many people dedicated to it.

lcc-win32 has been the result of the work of just three people. There is no budget, no institution whatsoever funding this work. In light of this conditions, the performances of lcc-win32 are quite acceptable, in my opinion.

Two different source sets were used for this comparison:
  • The source code of egcs 1.1b itself. Around 12 Megabytes of C source, this code represents a real complex application.
  • The symbolic calculator GP of Grenoble University in France. This code was used to measure the pure CPU integer speed in a real context of complex calculations. This program doesn't do any disk access other than reading a very small source file written in the calculator's internal language. The sources represent approx 1.5 megabytes of C code.
  • The version of gcc used was GNU C++ version egcs-2.91.57
  • The version of the icl compiler was version 2.4 P97176
  • The version of lcc was 2.4, compiled Nov-3 98
  • The machine used was a pentium MMX (intel) at 200MHZ with 64MB RAM.

Compiling egcs 1.1b

Icl compiler was given -Os (optimize for size), gcc was given -O, and lcc was given -O. If I changed the gcc optimizations for -O9, execution speed actually increased..., so I kept just plain -O, that seems to generate better code.
Compilation time with optimizations
icl650 sec
gcc472 sec
lcc213 sec
Compilation time with no optimizations
icl236 sec
gcc400 sec
lcc198.4 sec
To measure the speed of the resulting executable, the same source file was used: a large file of 270.999 bytes C source, that was given to the three generated compilers. The exact command line is:
xxx.exe -O9 win32.c
All executables were started twice, and only the second time was significant to avoid the influence of the disk cache.
Execution time (optimized)
icl33.7 sec
gcc35.6 sec
lcc39.8 sec
Execution time (no optimizations)
icl43.5 sec
gcc46.6 sec
lcc47.8 sec
Code size (optimized)
icl2 056 192
gcc1 728 000
lcc1 831 968
Code size (no optimizations)
icl2 946 048
gcc2 679 808
lcc2 213 920

Compiling the symbolic calculator 'gp'

Icl compiler was given -Ox. gcc was given -O, and lcc was given -O.
Compilation time with optimizations
icl192.3 sec
gcc175 sec
lcc43.5 sec
Compilation time with no optimizations
icl73 sec
gcc152.2 sec
lcc36.9 sec
Code size with optimizations
icl1 033 728
gcc786 432
lcc785 440
Code size with no optimizations
icl1 218 560
gcc1 248 256
lcc969 248
Execution time with optimizations
icl35 sec
gcc40.3 sec
lcc44 sec
Execution time with no optimizations
icl48.8 sec
gcc60.7 sec
lcc51.3 sec

A floating point comparison

As measure I used a matrix multiplication program. Since the source is very small (37K) there is no point in measuring the compilation speed. I used the option -0x for intel, -02 for gcc, and -O for lcc. The results are as follows:
icl3.9 sec
gcc4.8 sec
lcc5.6 sec
It must be noted that Intel's compiler comes with a very high performance floating point math library. lcc (as gcc) uses the standard library of windows
Another important point is that the results of icl and lcc were exactly identical. The results of gcc differed after the 13th digit.
C/C++编译器软件精选:从初学者到专业开发者 C/C++编译器是将高级语言编写的源代码转换成机器代码的程序,它将人类可读的源代码转化为计算机可执行的二进制指令。编译器的性能直接影响到程序的运行效率和开发效率,因此在软件开发中具有至关重要的地位。WinTC,全称 Windows Turbo C/C++,是一个DOS环境下Turbo C/C++的模拟器,由俄罗斯程序员Viktor Medvedev开发。在现代操作系统逐渐淘汰DOS的今天,对于许多新入门的C/C++程序员来说,直接在DOS环境下学习和运行C/C++代码变得相当不便利。 阅读详情

相关推荐

lccwin32中午汉化版

lccwin32

lcc-win32

lcc-win32: A Compiler system for windowsby Jacob Navia based on the original screenplay of Dave Hanson and Chris Fraser: A portable C compiler Here you can download the lcc-win32 C compiler system

Ma_Ning的专栏 2067

Linux下的Cgic-Web标准库开发指导

本文档共分为四部分,第一部分是关于web-cgic开发的一些预备知识及基本原理,第二部分是具体的开发步骤。附录中记载了在开发过程中曾今遇到的一些问题以及标准库中提供的一些通用性功能的实现,对以这些通用性功能用户可以根据自身的需要进行裁剪。读者可以根据自己的需要选择性的阅读。

LCC-Win32 不支持中文路径的解决

从官网下载的Lcc-win32,是不支持用中文路径的项目的,编译会直接报make错误,找不到文件。 这个主要是\lcc\bin\make.exe文件并不支持汉字导致。 通过使用IDA Pro跟踪make.exe程序的执行,发现问题出现在00402EF4这条指令。 修改的方法就是,将movsx指令修改为movzx指令即可。 修改完这个字节后,mak

kbkpbot的博客 2658

lcc-win32 4.0 集成开发环境介绍

lcc-win32 4.0 集成开发环境介绍,视频演示。

别再死记硬背Payload了!深入理解Flask/Jinja2 SSTI的Python对象继承链与魔术方法

本文深入解析Flask/Jinja2 SSTI漏洞的底层原理,从Python对象模型出发,详细讲解如何通过魔术方法链实现RCE。文章揭示了Python对象继承链与魔术方法的精妙设计,提供了防御与绕过SSTI漏洞的实用技巧,帮助开发者深入理解漏洞本质并采取有效防护措施。

weixin_42525738的博客 356

windows nt c语言编译器,一些非常用C/C++编译器

在Windows平台下,除了VS、类UNIX模拟环境CygWin/gcc和MinGW外,还有一些小众的C/C++编译器,下面简单介绍一下。1. LCCLCC-Win32 是运行于Windows9x/Me/NT/2000下的免费的32位C语言编译系统。它的原始发布文件只有 3M,但却拥有一个功能强大的集成开发环境(IDE)、速度极快的编译器与连接器、方便顺手的调试器、资源编辑器和版本控制系统。另外还...

weixin_32616931的博客 990

避开STM32中断优先级配置的坑:HAL_NVIC_SetPriority()参数你真的用对了吗?

本文深入解析STM32中断优先级配置中的关键问题,重点剖析HAL_NVIC_SetPriority()函数的正确使用方法。通过实际案例揭示优先级分组设置、抢占优先级与子优先级的区别,提供多中断系统中的优化策略和调试技巧,帮助开发者避免常见配置错误,提升系统稳定性。

weixin_42532938的博客 423

使用Lccwin32进行开发。

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 624

周志华《机器学习》课程系列笔记——目录导航页

最近自学机器学习课程,注意到了南京大学周志华老师的课程。我是在学堂在线平台观看的,注意到b站上也有相应视频,但b站上并未获得授权,随时有消失的可能。周志华老师的网络教学视频中,与其西瓜书相比确实少了一些内容。但幸运的是,缺失的内容实际上对于初学者来说并不会产生太大影响。目前这一笔记也遵循视频内容,相比西瓜书中也会有一些缺失,敬请谅解。可能以后如果有机会和时间,我会再阅读周志华老师的书籍将缺失内容补全。一切内容敬请关注我的个人Page页面。

Sinocifengs的博客 1687

从零构建2.4G无线通信系统:MSPM0G3507与NRF24L01的深度协同设计

本文详细介绍了基于MSPM0G3507微控制器与NRF24L01射频模块构建2.4G无线通信系统的深度协同设计方案。内容涵盖系统架构、SPI通信优化、功耗管理、抗干扰机制及中断/DMA高效利用,为工业物联网应用提供高可靠、低功耗的无线传输解决方案。

rice5的博客 821

lcc win32的使用方法(网络采摘)

lcc win32的使用方法 对于一个用C编程的人来说,整天用VC++的编译环境,不知道是不是一种讽刺。不过话说回来,现在VC++的编译器满天飞,倒是没见几个纯C的编译器。公司里面美其名曰C变成,却只看到VC6.0,VS2005。虽然VS2005也能写出C的代码,用C的编译器(只需要命名的时候改文件名的后缀为.C就行了),但是毕竟是跟C++的编译器是一起的,用起来甚是...

weixin_34391445的博客 293

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

GLFW v2.5 安装配置官方指南 及 下载链接

下载链接:2.5:http://content.gpwiki.org/index.php/GLFW:Tutorials:Basics 最新版:http://www.glfw.org/download.html 1. Introduction Welcome to version 2.5 of the GLFW OpenGL framework. GLFW is a fre

m1230315的专栏 4282

RK3568项目(四)--uboot启动流程之启动模式选择

本章接着上面,接着来分析uboot启动流程,设计vendor、按键、驱动模式的选择等

文艺小少年的博客 584

Python爬虫实战:基于最新技术爬取国家企业信用信息公示系统数据

本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的国家企业信用信息公示系统爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、数据解析与存储等高级话题,最终实现一个完整的爬虫系统。文章包含大量实战代码示例,适合中高级Python开发者学习参考。网络爬虫(Web Crawler)是一种自动获取网页内容的程序,广泛应用于搜索引擎、数据分析和商业情报收集等领域。通用爬虫:如搜索引擎爬虫,广泛抓取互联网公开信息聚焦爬虫:针对特定领域或网站的数据采集增量式爬虫:只抓取更新内容,减少资源消耗。

2201_76125261的博客 2408

在Windows下运行Felzenszwalb的Deformable Part Models(voc-release4.01)目标检测matlab源码

可变形部件模型Deformable Part Models是目前最好的目标检测算法,由Felzenszwalb提出,本文介绍如何在Windows下运行Felzenszwalb的Deformable Part Models(voc-release4.01)目标检测matlab源码

Why So Serious? 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

intel编译器19.1编译报错“ICL“任务意外失败

昨天重装了个系统就这样了,请问是什么问题? 编译x86和x64都是这样,空代码也是,用VS编译器就没问题 主要用于x64内联汇编 环境:VS2019桌面开发+intel编译器19.1

qq_37371484的博客 1643

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

intel compiler 11.1

 使用版本一个月就到期了,这时候该系统时间是可以继续编译通过的。不过如果涉及到依赖性的判断,生成文件时间的混乱会造成编译系统不能正常运行。如果使用命令行进行编译,需要运行iclvars.bat ia32 (32bit/x86),以建立icl.exe的运行path。 

我的开发日志 1058

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C语言学习第一天:Pelles C安装及第一个程序编译运行。

一、Pelles C安装 本人使用的系统为Windows10,安装VC6.0较为麻烦,便使用了C Primer Plus第六版中推荐的Pelles C,下载地址为:http://www.smorgasbordet.com/pellesc/ 点击左侧download,进入上图所示界面,下载第一或第二个文件。 下面为语言包,下载后解压放入\Bin\Intl。但本人使用后乱码,便没有汉化。 安装步骤不多赘述。 二、编写并运行第一个程序 依次选择File-New-Project,之后选择win32(

Yurisa123的博客 6096

LccWin32下制作Dialog

步骤经过半天的探索,参考VC下相同项目的源文件,我终于在LccWin32下做出带菜单、图标、系统菜单、最小/大化按钮的对话框(Dialog)了。具体步骤如下列各图所示,各图中具有焦点的按钮(Focused Button)即为每一步最后要点击的按钮。其中项目的目录等信息请大家根据自己的情况更改。第一步第二步第三步第四步第五步第六步第七步 源代码其中粗体部分为向导完成后,手工添加的代码。DlgTest

BlackMonkey的专栏 1749

loadrunner录制事件为0_LoadRunner脚本开发

》》》推荐阅读《《《1、性能测试学习笔记-场景设计2、性能测试的重要意义3、性能分析流程及方法4、应用系统性能调优之性能分析VuGen脚本文件的开发过程1。定义测试项目的目标,环境,脚本,测试数据,硬件等。脚本应该符合编码规范或编码习惯。2。创建一个版本文件夹来保存被测应用程序相关的各种不同资源,例如截获的.png/.gif图形文件,录制过程保存的html文件,录制中的所有html源文件...

weixin_39795284的博客 394

lccwin32指南

LCC-Win32小指南By Daniel Guerrero Miralles翻译:pigprince --------------------------------------------------------------------------------声明    本文没有任何明确的或者含蓄的表达说明本文是完全正确的,对于应用本文内容所产生的任何结果,本人概不负责。     请原谅本文在

digwtx的专栏 2164

lcc-win32使用指南

  下载完lcc-win32后,双击打开,新建工程,名字:test 然后点击Browser 选择Path路径[Output directory会自动出来] 注意:这里的路径不能先lcc-win32安装的路径,否则编译时会出错, 我先的是d:"temp, Output directory 会自动变为 d:"temp"lcc 2.type of project 选择console applicati...

爱码农爱生活 1336
上一篇: Win32asm 初学者常见问答集
RadAsm
博客等级 码龄25年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值