几个简单的代码优化技术
缓存的利用
地球人都知道从堆里分配内存的效率是比较低的,对于一些需要经常分配而又要经常释放的内存就可以利用缓存了。比如在刷新里,在循环的计算里等等。这个比较容易理解
总结3:一般情况下能在栈中分配的变量不要在堆中分配,对于频繁的分配释放要适当使用缓存
避免临时变量的生成
在C++中很多地方都在自觉不自觉中生成和销毁,而其中有很多却是不必要的,它白白的消耗了宝贵的系统的资源
//
// 1
string str;
str = " somebody " ;
//
// 2
string str( " somebody " );
// or
string str = " somebody "
// 1
string str;
str = " somebody " ;
//
// 2
string str( " somebody " );
// or
string str = " somebody "
在1中首先构造了一个string,然后调用operator=,而第二种则直接的构造函数中就已经搞定了。如果string没有提供右值为char*的operator=的话后果更严重,现场按照"somebody"这个构造一个零时的string变量,然后调用string& operator=(const string& rhs)。
在有些参数传递的函数中也有可能产生临时变量
//
// 1
void fun1( string & str)
{
}
//
// 2
void fun2( string str)
{
}
// 1
void fun1( string & str)
{
}
//
// 2
void fun2( string str)
{
}
第一种用引用来避免了临时变量的生成
返回值也类似
总结4:了解面对对象,了解C++。避免临时变量生成