日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

《软件工程》individual project开发小记(一)

發(fā)布時(shí)間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《软件工程》individual project开发小记(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天周四沒有想去上的課,早八點(diǎn)到中午11點(diǎn)半,下午吃完飯后稍微完善了一下,目前代碼可以在dev c++和vs2012上正常運(yùn)行,性能分析我看資料上一大坨,考慮到目前狀態(tài)不太好,腦袋轉(zhuǎn)不動(dòng)了,決定先放一放去看看鄒老師以前的軟工博客以及學(xué)長(zhǎng)學(xué)姐們的經(jīng)驗(yàn),現(xiàn)在這里稍微總結(jié)一下.

1)????? Before you implement this project, Record your estimate about the time you WILL spend in each component of your program.

做這個(gè)項(xiàng)目之前,因?yàn)橹皬臎]有系統(tǒng)的進(jìn)行過(guò)從需求分析到編碼到性能分析的開發(fā)過(guò)程,所以對(duì)各項(xiàng)工作所預(yù)計(jì)的時(shí)間估計(jì)不足

需求分析

這項(xiàng)工作主要用來(lái)分析整個(gè)項(xiàng)目到底要做什么,每項(xiàng)工作的大致實(shí)現(xiàn)方式,預(yù)計(jì)是用半個(gè)小時(shí)左右的時(shí)間

編寫代碼

預(yù)計(jì)用3個(gè)小時(shí)左右的時(shí)間

性能分析

預(yù)計(jì)用1個(gè)小時(shí)左右的時(shí)間

2)????? After you had implemented this project, record the ACTUAL time you spent in each component of your program.

目前為止,需求分析和編碼工作已經(jīng)基本完成,然后所用的時(shí)間已經(jīng)遠(yuǎn)遠(yuǎn)超出想象

現(xiàn)在是周五下午3:40分,我昨天晚上將代碼完善了一下,采用了hash表的方法來(lái)存儲(chǔ)word,對(duì)于每一個(gè)word利用大素?cái)?shù)求一個(gè)hash值,對(duì)于hash值相同的word我用一個(gè)鏈表來(lái)存,為了實(shí)現(xiàn)word按照頻度排序,最后將鏈表中的word都提取出來(lái)放入一個(gè)數(shù)組中進(jìn)行關(guān)鍵字排序就好.這樣時(shí)間復(fù)雜度接近O(1);我從花園上下了一個(gè)133M左右的英文txt小說(shuō)合集作為測(cè)試樣本,發(fā)現(xiàn)程序總是崩掉,后來(lái)終于發(fā)現(xiàn)是我的大素?cái)?shù)不夠大,存儲(chǔ)空間太小,我將大素?cái)?shù)改為50W以內(nèi)的最大素?cái)?shù)后順利解決了這個(gè)問(wèn)題

需求分析

前期的需求分析明顯不足,導(dǎo)致許多工作在編碼過(guò)程中需要補(bǔ)充,加上在整個(gè)編碼過(guò)程中零零散散的一些時(shí)間,這項(xiàng)工作實(shí)際大概運(yùn)行了90分鐘左右

編寫代碼

編碼中遇到的一個(gè)最大的問(wèn)題是從dev c++上移植到vs2012,由于vs2012的代碼安全性檢查較為嚴(yán)格,而本次項(xiàng)目要求不出現(xiàn)warning,因此在許多地方都需要改用最新建議使用的函數(shù),這里就花費(fèi)了大量的時(shí)間查找函數(shù)說(shuō)明;由于對(duì)vs2012的不夠熟悉也花費(fèi)了一些時(shí)間;還有一點(diǎn)就是對(duì)于word的存儲(chǔ),由于每當(dāng)讀入一個(gè)新的word時(shí)需要判重,我最初考慮是用map來(lái)實(shí)現(xiàn),但代碼編寫過(guò)程中發(fā)現(xiàn)不會(huì)使用map對(duì)string和int兩個(gè)關(guān)鍵字進(jìn)行雙關(guān)鍵字排序...這里犧牲了代碼的效率最后改用了sort編寫cmp函數(shù),這個(gè)地方留到性能分析的時(shí)候考慮用更快的方法來(lái)實(shí)現(xiàn).整個(gè)編碼過(guò)程實(shí)際用時(shí)在270分鐘左右.

?

以上是昨天總結(jié)的

昨晚我又對(duì)addword函數(shù)進(jìn)行了重寫,采用hash的方法,大概用了兩個(gè)小時(shí)的時(shí)間;今天上課的時(shí)候在思考出錯(cuò)的原因,下午調(diào)試了一個(gè)小時(shí)左右

性能分析

預(yù)計(jì)用1個(gè)小時(shí)左右的時(shí)間

3)????? Describe how much time you spent on improving the performance of your program, and show a performance analysis graph (generated by VS2012 perf analysis tool), if possible, please show the most costly function in your program.

開始時(shí)我用遍歷數(shù)組的方法判重,這樣每次讀入一個(gè)單詞都需要O(n)的時(shí)間去查找顯然不行,昨天晚上我想到了用hash的方法,編碼+今天的調(diào)試大概用了5個(gè)小時(shí)的時(shí)間.

以下是我的performance analysis graph:

最占時(shí)間的應(yīng)該就是Input函數(shù)了,它負(fù)責(zé)從目錄中識(shí)別目的文件并讀取,不過(guò)說(shuō)實(shí)話這個(gè)性能分析自己還不太會(huì)用。。。好多dll文件怎么冒出來(lái)的還不太明白是什么東西..

?

今天是9月15日,我搜索了一下“無(wú)法查找或打開 PDB 文件”的解決方法之后得到如下性能分析圖,感覺比以前慢了好多。。。難道是因?yàn)榧虞d那些什么.dll文件么...不太懂.

深入分析函數(shù)性能

讀文件夾還算不太占時(shí)間

最耗時(shí)的是讀字符和將word加入的判重工作

就是這樣。。

?

6:14分左右的時(shí)候。。。又跑了一遍。。。速度更快了。。分析原因是這樣。。樣本文件沒有變,但由于之前的樣本是放在深層的文件夾中,遞歸花了一些時(shí)間(這么有影響么。。)。。這次只有12S左右,nice .

4)????? Share your 10 test cases, and how did you make sure your program can produce the correct result. (programs with incorrect result will get 0 points,? regardless of speed)

測(cè)試用例我自己設(shè)計(jì)了五組,test1用來(lái)測(cè)試各種文件類型,test2用來(lái)測(cè)試空文件夾,test3用來(lái)測(cè)試空文件,test4用來(lái)測(cè)試100M+的文件夾,test5模擬實(shí)際的文件夾結(jié)構(gòu)+100M+文件夾,其他五組測(cè)試用例我決定使用其他同學(xué)的用例,通過(guò)與其他同學(xué)的代碼結(jié)果對(duì)拍,我認(rèn)為我的代碼能夠正確且比較高效的完成項(xiàng)目需求.

5)????? Describe what you had learned in this exercise.

1.學(xué)到的第一點(diǎn)就是遞歸遍歷指定目錄下的所有文件.以前只會(huì)單純的用文件指針或者輸入輸出重定向來(lái)訪問(wèn)單個(gè)文件,而在這個(gè)項(xiàng)目中學(xué)到了在windows和unix下利用一些api來(lái)實(shí)現(xiàn)遞歸遍歷指定目錄下的所有文件.

2.學(xué)到了一些由于指針安全性而引發(fā)的vs2012的安全性檢查,并了解了諸如strcpy,fopen等函數(shù)的替代函數(shù)

3.vs2012中一些問(wèn)題的解決方法,例如:http://blog.csdn.net/chw1989/article/details/7482205

4.字符串哈希,尤其是學(xué)會(huì)了鏈地址法.

5.初步了解了vs2012進(jìn)行preformance analysis.

?

?

PS:需求改了要提前說(shuō)啊。。。今天剛剛看到需求又改了。。。

轉(zhuǎn)載于:https://www.cnblogs.com/oldoldb/p/3316865.html

總結(jié)

以上是生活随笔為你收集整理的《软件工程》individual project开发小记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。