-> Define lightweight constructors
เราควรจะกำหนดให้ constructor
มีขนาดเล็กที่สุดเท่าที่จะทำได้ เพราะการสร้าง Object
ทุกครั้งจะต้องเกี่ยวข้องกับ construcor ทุกครั้ง การทำการปรับแต่ง
constructor จะทำให้ได้การทำงานที่เร็วขึ้นมากทีเดียว
-> Prefer
initialization over assigment
เราควรทำการ initial
ค่าให้กับตัวแปรมากกว่าการ assign ค่าในภายหลัง
void foo( )
void foo_optimize( )
{ complex c;
{
c=(complex) 5;
======>
complex c=5;
}
}
->Use constructor initialization
list
ควรใช้ constructor initialization list ในการ
initial ตัวแปร การทำ assignment ไว้ใน constructor body
จะทำให้ประสิทธิภาพลดลง
Employee :: Employee(string name,string desig)
Employee
:: Employee(string name,string desig) :
m_name(name),m_desig(desig)
{ m_name = name;
======>
{
m_desig=desig;
}
}
-> In-line 1 to 3 line
functions
ควรขยาย function ขนาดเล็ก( 1,3 บรรทัด)ให้เป็น
function แบบ In-line(เขียนโค้ดตรงๆไม่ต้องเรียกฟังก์ชัน)เพื่อขจัด
overhead ของการ call function และ parameter ที่ต้องส่งผ่าน
อย่างไรก็ดีการใช้วิธี in-line function
นี้กับฟังก์ชันอื่นๆที่มีขนาดใหญ่อาจให้ผลที่เป็นลบมากกว่า
เนื่องจากการเพิ่มขึ้นของโด้ด
int func(int y)
int func(int y)
{
{ i
nt temp=0;
return
pred(y)+pred(0)+pred(y+1);
======>
if(y==0)
temp+=0; else temp+y;
}
:
:
return temp;
}