力為的技術(shù)博客
聯(lián)系
聚合
管理
154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks
公告
@上海浦東
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(58)
給我留言
查看公開留言
查看私人留言
隨筆分類
(154)
2. Graphics(10)
3. VC&MFC&Qt(35)
4. C++ FAQ(35)
5. GP&STL&BOOST(10)
6. COM&ATL&WTL(5)
7. OGRE Analysis(14)
8. ACIS/HOOPS(4)
9.OpenCASCADE(13)
Mac&iOS(5)
Mac&iOS(1)
Tools(22)
積分與排名
積分 - 712998
排名 - 22
最新評論
1.?re: 2015武漢校園招聘歸來
@eryar
時間安排的太緊,就沒有驚擾你啦。
--力為
2.?re: 2015武漢校園招聘歸來
評論內(nèi)容較長,點擊標題查看
--sunyuanbo
3.?re: 2015武漢校園招聘歸來
謝謝 您的筆記讓我受益匪淺
--仝錫林
4.?re: 2015武漢校園招聘歸來
不知道來武漢了啊!
--eryar
5.?re: 2015武漢校園招聘歸來
@力為
謝謝提醒,還在學習中。。。
--編程小學徒
6.?re: 2015武漢校園招聘歸來
評論內(nèi)容較長,點擊標題查看
--編程小學徒
7.?re: 2015武漢校園招聘歸來[未登錄]
評論內(nèi)容較長,點擊標題查看
--chipset
8.?re: 2015武漢校園招聘歸來
@編程小學徒
考研也不僅僅靠有編程興趣就夠了,還有其他的課程。好好準備吧,祝考試順利。
--力為
9.?re: 2015武漢校園招聘歸來
評論內(nèi)容較長,點擊標題查看
--編程小學徒
10.?re: 2015武漢校園招聘歸來[未登錄]
為了混口飯吃,大家都不容易啊,原諒刷題的同學吧。話說學校里能教啥呀,都靠自己用心,有上進心才是最重要的,否則筆試面試再好也是白扯。從面試官的角度看考試沒有錯,換成我會找有潛力的或者上進心強的。
--chipset
11.?re: 【代碼】使用Teigha讀取DWG
要用vs2010編譯么?
--jj
12.?re: 臨時對象引用[未登錄]
最后一個例子也是零時變量?
--zhonghuajia
13.?re: 為什么需要給函數(shù)返回類型加const
評論內(nèi)容較長,點擊標題查看
--冬瓜
14.?re: 【代碼】使用Teigha讀取DWG
歡迎加入QQ群122751318,討論Teigha
--Teigha開發(fā)
15.?re: CMake + Qt5.1.0
@MIKE
還是不行。
不管是prefix還是library還是include,都嘗試過了,不行,網(wǎng)上的方法都不行……
--Delbert
評論排行榜
1.?Pro OGRE 3D Programming 電子版(54)
2.?手機號碼黑名單(53)
3.?屏幕截圖工具V1[附源碼](22)
4.?波形顯示不是很難(15)
5.?五個小矮人分桃子-一道小學生的作業(yè)題目(15)
6.?用istringstream 解決問題一則(14)
7.?用CImage加載內(nèi)存里的Image(14)
8.?fstream 和 中文路徑(13)
9.?OGRE動畫練習(13)
10.?VC+ADO操作數(shù)據(jù)庫注意事項(1)(13)
11.?OGRE粒子系統(tǒng)之在烈火中永生(11)
12.?如何通過FILE*操作內(nèi)存文件?(11)
13.?VC2008 Feature Pack的問題(11)
14.?升級到 VS2008 SP1 注意問題(11)
15.?失足于shared_ptr(11)
遞歸引起的性能問題
程序模型
有類似這樣的一個數(shù)據(jù)結(jié)構(gòu):
class
MyData
{
public
:
MyData
*
Clone()
const
;
private
:
Array
<
MyData
>
m_arrData;
}
現(xiàn)在需要實現(xiàn)MyData::Clone方法,很自然的會使用這樣的方法實現(xiàn):
MyData
*
MyData::Clone()
const
{
MyData
*
pData
=
new
MyData;
const
int
nSize
=
m_arrData.size();
pData
->
m_arrData.resize(nSize);
for
(
int
ii
=
0
;ii
<
nSize;
++
ii)
pData[ii]
=
m_arrData[ii]
->
Clone();
return
pData;
}
姑且稱m_arrData中的數(shù)據(jù)為MyData對象的子節(jié)點。假如MyData的某個對象有N層孫子節(jié)點。當調(diào)用Clone的時候,非常有可能發(fā)生堆棧溢出的情況。
在實際的應用的時候發(fā)現(xiàn),在堆棧溢出的時候不會拋出異常,會有假死的癥狀,CPU會用滿,出現(xiàn)程序好像還在艱難的思考的假象。
解決辦法: 用循環(huán)代替遞歸調(diào)用。
療效:程序變快了
注意:遞歸可以方便直觀的實現(xiàn)算法,但有時候卻會大大的影響程序性能,甚至引發(fā)程序非正常死亡。
posted on 2010-03-24 14:24
力為
閱讀(2799)
評論(3)
編輯
收藏
引用
所屬分類:
4. C++ FAQ
評論
#
re: 遞歸引起的性能問題 2010-03-24 23:48
Quon
尾遞歸是解決優(yōu)雅代碼和性能的良方
回復
更多評論
#
re: 遞歸引起的性能問題 2010-03-25 17:09
力為
關(guān)于尾遞歸:
尾遞歸與Continuation
http://blog.csdn.net/fisher_jiang/archive/2009/04/29/4133533.aspx
回復
更多評論
#
re: 遞歸引起的性能問題
2010-03-26 16:58
sigepluto
正解,用尾遞歸就好了。
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
VS2010 Win32編譯失敗一例
std::vector使用一例
istreambuf_iterator 使用
臨時對象引用
布爾變量初始值(2)
為什么需要給函數(shù)返回類型加const
被遺忘的argv[0]
當嵌套類遇見API
用lambda對std::list排序
構(gòu)造UTF8的std::string
網(wǎng)站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 力為
麻豆精品久久久一区二区
|
欧美性猛交xxxx免费看久久久
|
日韩人妻无码一区二区三区久久
|
中文字幕日本人妻久久久免费
|
久久久无码精品亚洲日韩蜜臀浪潮
|
久久99国产精品99久久
|
日韩精品久久久久久久电影
|
好久久免费视频高清
|
波多野结衣久久精品
|
亚洲午夜久久久精品影院
|
久久久国产视频
|
久久99精品国产99久久6
|
狼狼综合久久久久综合网
|
色婷婷久久综合中文久久一本
|
国产精品一区二区久久国产
|
中文字幕久久精品
|
久久久久久亚洲精品不卡
|
国产精品久久99
|
久久精品人人做人人爽97
|
国产精品久久久久蜜芽
|
精品国产91久久久久久久a
|
精品久久久久久国产潘金莲
|
精品久久久久久久久免费影院
|
精品久久久无码中文字幕天天
|
久久99国内精品自在现线
|
欧美日韩久久中文字幕
|
久久影院午夜理论片无码
|
99久久亚洲综合精品网站
|
久久精品国产精品青草app
|
久久无码人妻一区二区三区午夜
|
2021最新久久久视精品爱
|
亚洲国产精品无码久久久久久曰
|
久久精品国产亚洲av瑜伽
|
国产精品丝袜久久久久久不卡
|
日本久久久久久中文字幕
|
91精品免费久久久久久久久
|
久久综合久久综合久久综合
|
国产69精品久久久久99尤物
|
一本一道久久精品综合
|
久久e热在这里只有国产中文精品99
|
精品久久久久久无码中文野结衣
|