有時候懂太多也不好,太優(yōu)秀,優(yōu)秀到格外耀眼且喧囂。
——蘇小木。
這點小要求,譚凌斷沒有拒絕的道理,對這個短時間就刷了三次全校通告的小學(xué)弟,他還是很欣賞的。
“也行,我先把整個程序的算法設(shè)計給你調(diào)出來,總綱你得看一眼,數(shù)據(jù)結(jié)構(gòu)的算法部分有特別的標記,直接定位就行?!?p> “整個程序的算法設(shè)計比較龐大,底層用的是C++,數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)這一塊用的是Java和Python,你都懂的吧?”
譚凌一邊彎腰在工作臺上操作著,一邊絮絮叨叨的介紹。
直起身的時候,工作臺的顯示器屏幕上多了很多內(nèi)容。
一旁的蘇小木一邊點頭,一邊靦腆的說道,“C++和Python還行,Java差一點,那,我先看看?”
見譚凌點頭讓開身位,蘇小木就坐到了工作臺前。
課題本身就比較松散,反正大家也不忙這會,幾個腦袋零零散散的擠了過來。
對這個張可教授這么多年來收的唯一一個本科生,除了學(xué)院的知情人士好奇以外,他們也很好奇其實。
張可抱著保溫杯在一旁笑瞇瞇的看著,也不說話,許是又想起了自己曾經(jīng)也是這么青澀,這么優(yōu)秀,這么……
想著想著,突然想到了自己瘋狂后退的發(fā)際線,猛地喝了一大口當歸枸杞水。
還是要注意保養(yǎng)啊。
…………
整個程序從算法設(shè)計總綱很清晰的列了出來,數(shù)據(jù)結(jié)構(gòu)檢索算法的選擇也揭開了面紗。
蘇小木左手托著下巴,右手不時滾動鼠標,面露思考。
實話實說,除了自己寫過的,他是第一次見過這么優(yōu)雅的代碼。
張可教授不愧是學(xué)校里面最嚴苛也最幽默的教授,挑選的學(xué)生分外優(yōu)秀,在課題中不吝于精益求精。
總綱有部分算法的設(shè)計對蘇小木來說稍微有點超綱,他的眉頭不由自主的蹙了起來。
在UVA已經(jīng)AC到1300多道題的經(jīng)驗發(fā)揮了作用,右手無意識的撥弄了一小會,緊皺的眉頭展開。
如此這般,大約二十分鐘后,蘇小木靦腆一笑,道。
“數(shù)據(jù)結(jié)構(gòu)的這個檢索算法,我覺得好像是可以這么來……
二叉樹的遍歷方法分很多種,就跟我們上什么大學(xué)、選什么專業(yè)一樣,選擇不同,遍歷的方法就不同,所以,我們是不是可以這樣……”
噼里啪啦,修長的手指在鍵盤上揮舞著光芒。
“別!動!我的老天鵝!你可千萬別亂動!”
譚凌猛地推了推眼鏡,連忙制止道。
“小學(xué)弟,這學(xué)長可就得說你了,咱們在課題上的代碼雖然都是有備份的,但一般不建議擅自修改……balabala~”
噠~噠噠~噠噠噠。
鍵盤敲擊的韻律、balabala的絮叨聲奏響起一會兒急一會兒緩的樂曲。
“啊,以后我一定記得提前說,不過學(xué)長,你看這樣的話,雖然還是有不同的選擇,但在檢索上好像更方便了一點點……”
在譚凌巴拉巴拉的時候,蘇小木沒有停下手上的動作,這個時候敲下最后一個‘;’,比了個一小小的手勢,聲音蒟蒻的說道。
嗯?
譚凌頓時一愣,然后一臉懵逼。
這就改好了?
算法不用先想一想設(shè)計一下的嗎?
鍵盤就這么聽你話的嗎?
還有,你……
臥槽?
這樣也可以?
“呃,小學(xué)弟,你說,你是過來砸場子的吧其實!”
片刻,譚凌直突突的說道。
程序數(shù)據(jù)結(jié)構(gòu)部分的算法設(shè)計之前就是他譚凌親自操刀的。
蘇小木靦腆一笑,“沒有沒有,只是湊巧懂一點點數(shù)據(jù)結(jié)構(gòu),以及跟算法的關(guān)系?!?p> 呵呵~
呵呵呵~
呵呵呵呵~
湊巧、懂一點點……
我俏麗嗎?我問你,我俏麗嗎?
譚凌身后數(shù)個學(xué)長的眼睛中的每一條血絲、每一點浮腫,都在說這句話。
“哇,小木學(xué)弟,你怎么這么厲害?!?p> 驚呼聲從蘇小木的右側(cè)響起,轉(zhuǎn)頭就看到合法蘿莉林唐雙手合攏,眼睛眨呀眨的往外冒星星。
要不是知道她皮,蘇小木差點就信了。
“那個,林學(xué)姐,你知不知道李時珍其實沒死?”蘇小木突然挑了挑眉。
林唐:“???”
怎、怎么個意思?
這個人的眉毛怎么感覺有點……
林唐還在想蘇小木的話是什么意思的時候,蘇小木已經(jīng)投入到下一段代碼的修改中去了。
…………
…………
接下來的大半個小時里,蘇小木針對性的挑出一段代碼,進行局部優(yōu)化。
自從小垃圾系統(tǒng)給出數(shù)據(jù)結(jié)構(gòu)這部分的知識資料以來,蘇小木還沒有系統(tǒng)性的運用過這部分知識。
哪怕在騷客APP的開發(fā)上,都只是簡單運用——因為…
用不上。
“數(shù)據(jù)排序有很多種方式,這部分我們可以這樣來……”
蘇小木一邊說著,一邊修改了代碼,那雙修長的手上像是揮舞著璀璨的風(fēng)兒,甚是耀眼。
數(shù)據(jù)的結(jié)構(gòu)并不是一成不變的,至少,對蘇小木來說,是這樣的。
他可以劃船不用槳,他可以揚帆沒有方向,只要他敲鍵盤的速度足夠快,就能追上他說話的速度……
至于另外的模塊,蘇小木不會去班門弄斧,有些地方都超綱了,別說去優(yōu)化,連理解都費了點功夫……
端著保溫杯不時喝口當歸枸杞水的張可教授摩挲著下巴,心中暗道。
“這羊城太大了點,打聽點消息都這么難!這小子,我非得看看他到底有多少東西!”
說起來也有意思,如果沒有小垃圾系統(tǒng)之后給的數(shù)據(jù)與元數(shù)據(jù)與存儲結(jié)構(gòu)基礎(chǔ)原理,蘇小木還真不一定能這么從容。
數(shù)據(jù)也會有臟數(shù)據(jù)這個東西的存在,臟數(shù)據(jù)的產(chǎn)生通常不受控制,并且是絕對無效的,還會占據(jù)空間,甚至?xí)绊懻?shù)據(jù)。
精心選擇的數(shù)據(jù)結(jié)構(gòu),可以有效的減少臟數(shù)據(jù)的產(chǎn)生。①
并且,對數(shù)據(jù)結(jié)構(gòu)的檢索算法以及索引的精心優(yōu)化,可以讓數(shù)據(jù)的運行效率更高,也可以讓數(shù)據(jù)存儲的效率更高。
讓數(shù)據(jù)本身不那么的臃腫。
這也是張可教授希望優(yōu)化的部分,這樣可以有效的節(jié)約存儲資源,讓計算進行得更快。
其實真的很難想象,數(shù)據(jù)也可以看上去這么優(yōu)雅。
當蘇小木敲下最后一個‘;’后,結(jié)束了全部的操作。
林唐輕咬著下嘴唇,雙手合攏在胸前拍著,“小木學(xué)弟,你怎么可以這么厲害!嚶嚶嚶!”
蘇小木:“……”
我可不可以申請腦闊不要轉(zhuǎn)?
這個小學(xué)姐真是太調(diào)皮了!
真想一拳一個嚶嚶怪。
emmmm。
“理論上講,現(xiàn)在的數(shù)據(jù)結(jié)構(gòu)應(yīng)該大約可以讓數(shù)據(jù)儲存效率提高百分之二十,運行效率提高百分之十五?!?p> 末了,蘇小木總結(jié)道。
譚凌和張可皆點了點頭。
“小學(xué)弟,看不出來嘛,你這水平上本二有點屈才,得跟咱們學(xué)校建議修夠足夠的學(xué)分,就可以讓優(yōu)秀的學(xué)生申請?zhí)?。?p> 譚凌笑瞇瞇的說道。
蘇小木連忙起身擺著手,很誠實的說道?!澳趿?,我要學(xué)的還有很多,就這個程序好多地方的算法設(shè)計我、就、看不懂……”
看著幾雙越來越不對勁的眼睛,蘇小木搔著頭蒟蒻的說完了話。
…………
…………
之后,譚凌上前主持程序,幾個學(xué)長包括調(diào)皮的林學(xué)姐也各自進入了角色。
實話實說,蘇小木對整個程序的設(shè)計部分都只懂個百分之八九十,他再翹尾巴,也不會這么沒有逼數(shù)的去主持程序。
譚凌他們的動作很快,沒幾分鐘,16個計算節(jié)點便開始重新工作。
程序返回了各種各樣的參數(shù)。
良久,譚凌收回看向顯示屏幕的目光,嘆了口氣,道。
“教授,數(shù)據(jù)的儲存效率確實如小學(xué)弟說的那樣,高了百分之二十五不止,運行效率也高了百分之二十,但還是那個問題,根據(jù)現(xiàn)有的反饋結(jié)果,只能勉強上32個計算節(jié)點……”
老大難的問題擺在了跟前:
存儲資源就這么多,只有兩條路,申請更多的存儲資源,申請廠商進行針對優(yōu)化,以同樣的存儲資源進行更大量的運算。
瓶頸其實不是存儲空間,而是存儲的性能、處理效率、壓力等。
如果是存儲空間,張可教授早就想辦法了。
這么說吧,同樣的存儲空間,不同的存儲矩陣配置,性能可以相差到20倍、100倍甚至好幾百倍。
這里面涉及到很多的參數(shù)。
比如硬盤的轉(zhuǎn)速、硬盤空間大小、數(shù)量、規(guī)格、存儲機頭的處理器、內(nèi)存等方面性能、存儲系統(tǒng)的相應(yīng)效率、IOPS、吞吐量等。②
硬盤有不同的大小容量和轉(zhuǎn)速,轉(zhuǎn)的速度越快,數(shù)據(jù)的讀寫效率就越高,雖然是同等存儲空間,但用4T的7200轉(zhuǎn)硬盤和用14塊300GB總共4T空間的15000轉(zhuǎn)固態(tài)硬盤,效率是絕對天上與地下。
這一點,蘇小木也幫不上忙,盡管他其實孟浪的考慮過寫一個程序放存儲上,幫助存儲讓數(shù)據(jù)更快寫入硬盤,讓存儲的硬件資源發(fā)揮到極致……
①:這個我真是隨便說的,臟數(shù)據(jù)這個概念解釋太復(fù)雜了,只要有數(shù)據(jù),基本上就有可能存在臟數(shù)據(jù)。
?、冢篒OPS:即每秒鐘數(shù)據(jù)進行讀和寫(I/O)操作的次數(shù),換句話說,大概相當于我們?nèi)粘_M行文件復(fù)制與粘貼的時候,顯示幾十M一秒這樣子。
======
破碗。求推薦票、筆芯。
今天一更,但是有3000多字。