++i 和 --i 谁的效率高 ?

++i 和 --i 谁的效率高 ?

看到高手的blog有关于++i 和 --i对于循环的时候,谁的效率更高的问题(有点geek,但是我喜欢~)

http://blog.csdn.net/dog250/article/details/5303375

#include<stdio.h>

int main(void)
{
	int i = 0;

	for(i = 0; i < 10;i++)
	{
		printf("Hello world!\n");
	}

	return 0 ;
} 

反汇编得到的主要部分:

#include<stdio.h>

int main(void)
{
	int i = 0;

	for(i = 10; i > 0;--i)
	{
		printf("Hello world!\n");
	}

	return 0 ;
} 

反汇编得到的结果:

王然前辈的blog记录中写到 i--的效率比i++要高,但是我这里感觉没什么区别...

路过高手麻烦指教一下

时间: 2024-10-02 04:54:46

++i 和 --i 谁的效率高 ?的相关文章

StringBuilder的Append()方法会比+=效率高

StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 id from " + databaseprefix + "channel"); strSql.Append(" where [email protected] "); StringBuilder的Append()方法会比+=效率高,StringBuilder比StringBuffer效率略高 +=,占资

(C++)i++和++i,哪个效率高一些

在看<程序员面试笔试宝典>时,发现了这样一个问题,书中只给出了++i的效率高一些,但并没有给出具体的解释和说明. 在网上找到下面的答案: 1.从高级层面上解释 ++i 是i=i+1,表达式的值就是i本身 i++ 也是i=i+1,但表达式的值是加1前的副本,由于要先保存副本,因此效率低一些. 对于C++内置类型而言,大部分编译器会做优化,因此效率没什么区别.但在自定义类型上,就未必有优化,++i 效率会高一些. 2.从底层汇编来看内置类型 int a,i=0; a=++i;汇编代码如下: int

var a=[]; 和 var a=new Array(); 的区别,为什么前者效率高

因为 JSON格式的语法是引擎直接解释的.而new Array 则需要调用Array的构造器.还有就是1.当你需要将一个数字转化为字符串时可以这样定义:var s=""+1; 这样的转化最快.2.当你定义一个对象类型时:var o={}; 而已 var o=new Object();道理是同样,new Object()需要调用Object的构造器.3.在js中执行字符串替换时,或查找字符串,需要进行循环时,可以考虑使用正则,速度更快.4.尽可能的少定义.使用全局变量var a=[];

内存映射的效率要比read/write效率高

http://blog.csdn.net/hongchangfirst/article/details/11599369 我们先来看看如果不使用内存映射文件的处理流程是怎样的,首先我们得先读出磁盘文件的内容到内存中,然后修改,最后回写到磁盘上.第一步读磁盘文件是要经过一次系统调用的,它首先将文件内容从磁盘拷贝到内核空间的一个缓冲区,然后再将这些数据拷贝到用户空间,实际上是两次数据拷贝.第三步回写也一样也要经过两次数据拷贝. 所以我们基本上会有四次数据的拷贝了,因为大文件数据量很大,几十GB甚至更

MFC 消息映射表和虚函数实现消息映射到底谁的效率高

深入浅出MFC对于虚函数实现方式的缺点,它指出:虚函数耗费大量内存,系统最终将被这些额外负担拖垮.    但是现在对于容量巨大的白菜价格的内存来说,这种额外负担是否已经过时了呢~?    书中提到,虚函数表中的每一个项目都是一个函数指针,价值4字节,如果基类的虚函数表有100项 (MFC里面的消息数量是否在这个数量级?),经过十层继承,开支散叶,总共需要耗费多少内存?    我粗略地算了下,不知道这种计算方法是否正确,4Byte*100项=400Byte.如果CCmdTarget中定义100个消

java单例模式(线程安全,效率高,双重推断)

这样的方法,在获取单利的时候,避免了线程锁,导致訪问该方法速度非常慢, 同是,防止了多线程同事房屋该方法就会产生多个实例的问题. 效率高.线程安全. public class TestInstance{ private static TestInstance  instance; public static TestInstance   getInstance{ if(instance==null){ synchronized(TestInstance.class){ if(instance==

为什么存储过程比sql语句效率高?

存储过程经过预编译处理 而SQL查询没有 SQL语句需要先被数据库引擎处理成低级的指令 然后才执行 ------------------------------------------------------- 如果是只执行一次的话,存储过程不一定比SQL语句效率高.因为存储过程有个预先编译的过程.就是.启动服务器后或者第一次执行后(可以设置).就可以把存储过程加载到高速缓存中,这样以后调用起来就不用再通过编译 执行效率当然就高喽..另外执行存储过程只需要传递几个参数..用语句的话可能需要一大串

java单例模式(线程安全,效率高,双重判断)

这种方法,在获取单利的时候,避免了线程锁,导致访问该方法速度很慢, 同是,防止了多线程同事房屋该方法就会产生多个实例的问题. 效率高,线程安全. public class TestInstance{ private static TestInstance  instance; public static TestInstance   getInstance{ if(instance==null){ synchronized(TestInstance.class){ if(instance==nu

答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储 过程和使用T-SQL查询数据有啥不一样;

http://www.cnblogs.com/fygh/archive/2011/10/18/2216166.html 1. char.varchar.nvarchar之间的区别(包括用途和空间占用):xml类型查找某个节点的数据有哪些方法,哪个效率高:使用存储 过程和使用T-SQL查询数据有啥不一样: ------------------------------------------------ SQL中char.varchar.nchar.nvarchar的区别 http://www.cn