一直覺得C++的資源管理讓人很痛苦。我不得不看很多經驗性手冊,以保證能很好的進行記憶體等資源的管理。相比之下,.Net(CLR)引入了記憶體回收機制(GC),來完成託管堆資源的回收,這毫無疑問,大大減輕了開發人員的負擔。但是,天下沒有絕對免費的午餐,要想清楚地瞭解GC的運行,很好的掌握資源的管理工作(特別是涉及到非託管資源的時候),對我這種AI沒有突破性進展的人來說,並不是一件很容易的事情。恩。廢話不說,來具體看看CLR的資源管理機制。首先,來看看CLR對記憶體(託管堆)的分配。最簡單的說法就是
西班牙人也回家了。在一場實力和場面都旗鼓相當的對抗中,西班牙人輸給了運氣。也許簡單的歸結於運氣,有些說不過去,仔細想來西班牙足球多了一點浮華,少了一些速度。使得完美的轉移與局部配合卻無法構成太好的機會。相比之下,法國隊的裡貝裡為老邁的法國注入了一股的活力與衝勁,這是這種與整場比賽節奏格格不入的速度,決定了比賽的走向。西班牙足球的正名之日,又要繼續推延了。而我欣賞的球隊又回家了一支,剩下了阿根廷人希望能從這場比賽中學到一些東西。用好了更為恐怖的梅西,也許就是絕殺德國人的利刃。但是法國人也不要高興的
在前面說了GC的工作原理。需要注意的是,GC只能回收託管堆中的資源。其他一些非託管資源,比如檔案資源,緩衝區,互斥體之類,無法通過GC自動回收。必須通過開發人員自己編程實現對其的回收(有時候會覺得CLR的資源管理也會比較麻煩,因為它有一部分自動的,有用一部分手動的,但和C++比比,我們應該很知足了^_^)。很自然的一種編碼方式是將回收資源的函數寫入終結函數Finalize中,GC啟動回收託管資源的時候順便把非託管資源一併回收了(有時候我會簡單得說GC回收了,指的就是在GC啟動時正好執行該代碼一併
心情整個亂成了一團糟,隨著畢業的來臨。無法解釋的感覺,總是在收拾東西閑談扯淡無所事事的等等時候來臨。讓人有種莫名的惆悵與茫然。過不了幾天,所有的同學都會各奔前程。我以不再相信所謂距離無法分割感情的說法,距離不是感情的天塹至少也是屏障,特別對於我這種懶人。接下來會面對新的環境新的人,就會有新的事情新的朋友。有點討厭,總是受不了這種改變,離開一群有了感情的人卻不知道何日相見。告訴自己以後要勤勞一點,比如周末可以召集留京的兄弟姐妹去蹭兄弟老婆的飯,在沒人為我解決夥食之前,先把兄弟老婆當自己老婆用好了。
懶了好幾天,盡玩去了。恩,趕在年前,把想寫的再寫一點^_^。.Net目的之一是建立一個物件導向的編程平台。CLR當然需要支援物件導向的各個特徵,確切一些,CLR基本可以視為一個完全物件導向的平台(回憶一下之前說的CTS)。CLR的物件導向有一些自己的特點和實現手段,下面會分點寫一點,很零星不系統,算是一個筆記吧。封裝:CLR對封裝的支援沒有什麼特殊的。仍然是public,private,protected(在這裡使用C#的文法而不是CLR的文法,方便大家理解,下同)幾種主要許可權,比較特殊的有I
像我這樣的菜鳥一開始看到DNN時,像劉姥姥進了大觀園眼睛都不夠用了。找了好久才找到能“下口”的地方。雖然E文很菜,但努力讀完 ~\Documentation\Public\DotNetNuke Module Developers Guide 文檔後,還是感覺頗有所得。DNN的模組結構採用的是三層構架:l
當世界盃進入了1/4。比賽變得更為慘烈了。每場比賽都要送別一支隊伍。阿根廷人先回家了。我最心愛的球隊啊。直到現在心情仍然很難平複。一直覺得佩克爾曼玷汙了這支球隊,玷汙了阿根廷足球。從馬拉多納到巴蒂,阿根廷足球永遠都是張揚奔放,而佩克爾曼確是一個如此保守到懦弱的人。面對不算強大的德國隊就謹慎的不敢越雷池一步,領先之後又近於愚蠢的進行了保守的換人。阿根廷與西班牙隊最大的區別就是球員的類型更為豐富,但他卻讓自己的球隊犯了和西班牙一樣的錯誤。他以為自己是意大利了,但他忘了換下一米八的前鋒換上一米九的前鋒
其實,這個訊息已經很到期了。早在去年九月份的時候,微軟就發布了關於VB9.0的資訊。只是,沒有關注VB有一段時日了。因為自從VB走上了.Net平台,原來那簡單高效(開發效率)的VB不見了,取而代之的是一幅儼然C#雙胞胎的面孔。也許這種轉變是迫不得已,也許這種變化正是利大於弊(對於我來說,就是這樣,如果不是熟悉的VB,也不會開始嘗試使用.Net)。因為畢竟,別人有的咱VB也有了。但一想到所有曾經的優勢都不複存在,有的只是一幅明星臉,就會覺得很失落。而我,也很沒良心的叛變了,一頭栽進了C#的懷抱。。
1. DNN搜尋的索引庫的建立:http://esshs.cnblogs.com/archive/2005/08/18/217808.html2. DNN搜尋內容資料庫的實現:http://esshs.cnblogs.com/archive/2005/08/15/215491.html3.
四年的大學時光剩下了最後一夜。感慨時間真的走的太快,快的讓人有些害怕。想著再不會有機會回到這個熟悉的宿舍,看著熟悉的臉,惆悵就湧上心頭。但還好我們還有時間,它會給我們帶來新的記憶沖淡這漸行漸遠的記憶。今天的一切不久就會變成回憶,回憶也總有一天會被淡忘。就像過去的所有日子。突然想起,也後可能再也不會有機會坐在床上泡在電腦前了。再也不能每天早上在半夢半醒時,用腳開啟電腦,再沉沉睡去。也不能三更半夜倒在床上看片或者看球了。四年來的生活被截止在了這一夜。明天會有明天的生活。也許更令人嚮往,誰知道呢。要告
葡萄牙VS安哥拉 3:00 1:0葡萄牙帶著年輕了十歲的費戈登場了。當然還有華麗但急躁的C羅。不明白老頭子為什麼早早換下C羅,雖然他還是那樣的缺少效率,但並不缺少威脅。也許在教練眼裡西芒是個更安定的人選。但與其平庸,我更願選擇劍走偏鋒。希望C羅能早一點的成熟,也許他應該投靠穆尼裡奧了。這樣的葡萄牙,讓人擔心它會猝死,但如果誰敢對它大意,猝死的一定不是葡萄牙。很奇怪,安哥拉這樣的球隊怎麼進得世界盃。但想到中國隊自己,就一點也不奇怪了。人嘛,總有走狗屎運的時候。澳大利亞VS日本 2
一個託管的程式,從書寫代碼到編譯到最後運行,到底是怎麼一個過程,一直有些混沌,好好看了下書,梳理了一下。託管的程式是二次編譯的,因此一個託管程式從第一次編譯到最後的運行可以根據這兩次編譯的目的性不同分成兩個階段。第一個階段是從不同的語言編寫的代碼通過各自不同的編譯器編譯產生dll和exe檔案。第一次編譯產生的dll檔案和exe檔案統稱為託管模組。它們由PE表頭,CLR表頭,IL,中繼資料幾部分組成。PE表頭是存放作業系統(Windows)識別模組需要的一些資訊;CLR表頭是CLR的一些標識資訊;
韓國VS多哥 21:00 2:1韓國人贏了。他們又可以繼續吹噓他們的鋼鐵的意志,反敗為勝的勇氣。但這是我生命中看到的最膽小的一支球隊。他們為了多拖延幾秒鐘時間,竟然放棄了一次門前20多米的自由球,而他們的對手只是已經完全沒有抵抗力的多哥隊。上天不是要重演4年前那玷汙足球的一幕吧。法國和瑞士努努力吧,廢了這個噁心的隊。法國VS瑞士
託管程式的部署是以程式集(Assembly)為基本單元的。前面說過,一個程式集包含若干個託管模組(exe或dll)。但通常,一個程式集只包含一個dll或exe(在vs中也僅支援這種)。為了產生含多個託管模組的程式集可以用編譯器csc.exe或vbc.exe,或者是使用連結器al.exe。這種方式通常會用於分離常用庫和非常用庫(後面會提到)。程式集是一個邏輯概念,它在某一個託管模組中放置描述程式集資訊的清單(manifest)。程式集可以分成兩種,一種是強命名的,一種是非強命名的(Jeffrey
沒有情人的情人節。就在家貓了一天。前女友法來簡訊說:情人節快樂。我說:你也一樣。在一起的時候都從來沒有一起好好的過過情人節,分手了,快不快樂又能怎麼樣呢。 上大學開始老媽就念叨,在學校要好好讀書,不要交女朋友。沒辦法,只能做地下黨了。如今,我是安心過我平靜的生活了。我老媽到開始上心了。更誇張的是我外婆,打越洋電話叮囑我說:快畢業了,要趕快找個女朋友啊。在大學女生好,心無雜念。到了社會上啊,人的想法就多了,好女孩就難找了。我嘴上說好,我努力。心說,這又不是種莊稼,
生命中第一次喝醉。如果我沒有搞錯的話。因為我已經失去了一段記憶。記憶中我走上了馬路。然後被車撞了。失去了方向感。向著離宿舍遠離的方向走去。一路碰到了很多的障礙,都被克服了。直到被同學找到。一個清醒的和一個醉醺醺的。那時我已經基本恢複了理智。只是我不願意說話。從同學的打罵中我明白我大概走出去兩站路,然後睡在了工地上。看情況應該是沒有錯的。我血肉模糊的左腿證明了我的瘋狂。看了我還是不要喝醉了。真讓人不放心。從昨天開始,我就知道今天非醉不可了。所有的人都開口了,不會讓我醒著出來。我也不知道喝了多少啤酒
用.Net就不得不考慮效率問題(這點和Java一樣),到底有沒有這種效能問題?效能問題有多大?而微軟一直聲稱託管程式是安全的,這種安全性到底是指的什麼東西?達到這種安全到底付出了什麼東西?我一直對這些問題很迷惑,最近看了一些書後有一些理解,僅僅是理解,歡迎大家來討論。要比效率,通常都是與C++相比。毫無疑問,除了極少的情況下,託管的程式與傳統C++程式相比,效率有所降低,這種降低我個人覺得來源於以下幾個方面:1.就是從FCL的設計中看。FCL是完全物件導向設計的,它始終強到安全和異常處理。舉個很
離阿根廷的登場還有一個半小時。有些困意了,卻還是要挺住的。突然覺得夜有點漫長。答辯之前是不會有這樣的感覺的。前段時間除了看球,就是不停的在幹活。哪怕是兩場球之間的空閑也一點都不放過。看完了,就精疲力竭的倒頭便睡。連寫個看球體會的精力都沒有了。但就彷彿是突然間,所有的事都沒了,白天甚至有空拿下架子上的書來看。老天,真不知道上次那麼有空是哪天了。沒光的時候就開始看片,看球,看娛樂節目。要把自己放鬆到下次想到可以放鬆都害怕的程度。呵呵。天天都會看球,只是好久沒寫點東西了。昨天喝了那麼多,竟然還惦記著爬
C++和.Net程式採用了兩種不同的編譯方式。通常一個C++編寫的程式,都是一次編譯成二進位的代碼,在相應的作業系統平台上直接執行即可。而.Net程式採用兩次編譯的方式,用C#,VB.Net等語言寫成的程式被編譯成IL代碼,通過CLR在啟動並執行時候JIT編譯成為本地二進位代碼。個人覺得,MFC和WinForm很多設計上的不同從根本上說,都是因為編譯模式帶來的不同。因此,在仔細探討MFC和WinForm之前,有必要細細體會一下不同編譯方式帶來的改變。考慮一段代碼,它需要在不同的編譯環境下產生不同
16張黃牌4張紅牌,結束了這場近似瘋狂的比賽。葡萄牙人,踏過了荷蘭人。下一場他們將面對球踢的醜陋的令人髮指的英格蘭。世界盃是一個舞台。每一個球員,教練,國家隊,都在這個舞台上上演自己足球生涯中最重要的表演。但表演是一個團隊的項目,當某個人通過瘋狂的演出毀掉了這場演出時,他對不起台上所有的人,也對不起他表演的這個舞台。更對不起所有滿懷期盼的觀眾。我很難想象,當科斯蒂尼亞伸出他那隻無聊的手的時候,他是否想到,他可能會毀了整個葡萄牙隊的前程。當荷蘭人的腳重重踩在C羅大腿上的時候,他是否會想到他扼殺了一