• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            人生亦編程

            --Programmable Life
            posts - 86, comments - 43, trackbacks - 0, articles - 7

                打開燈,凌晨4:30,我竟然醒了,毫無睡意,閉上眼,依稀是好友的面孔,高中的朋友,大學的朋友,仿佛又回到他(她)們身邊的樣子,看來我是寂寞了。耳旁依稀是以前喜歡聽的一首歌,悲傷的、凄涼的、很多年不曾仔細聽過、自從上大學以后、那首《浪人情歌》,看來我就鐘意這悲傷的調調。
                 昨晚是自己煮面吃的,七年了,七年不曾操刀,如今切起菜來,感覺就是一個大漢拿著繡花針對針眼(其實我寧愿做針線活的),每一刀都切的很慢,每一刀都切得很仔細,每一刀都像是在切一件藝術品......(我實在不知道說什么了,所以用省略號代替)。
                 算了,突然沒了寫下去的興致,繼續睡覺吧,NIGHT!
                  
                                                                                                                                    --by-- 在寒風中葉落
                                                                                                                                                                         06年9月1日

            ps.這是晚上寫的,所以沒有條理的。

            posted @ 2006-09-01 20:16 人生亦編程 閱讀(85) | 評論 (0)編輯 收藏

            有個叫profiler的工具,是用來檢測代碼效率的,現轉用法如下,用得著的時候再去學它。

            NetBeans IDE 4.1/5.0 Profiler 教程

            本文旨在介紹配合使用 NetBeans Profiler v5.0 或 Profiler Milestone 8 的內容。如果您使用的是 Milestone 5,請使用此版本。如果您使用的是 Milestone 6,請使用此版本

            預計持續時間:50 分鐘

            NetBeans Profiler 是一個功能強大的工具,它提供了有關應用程序運行時行為的重要信息。NetBeans Profiler 產生的開銷相對來說較小,它可以跟蹤線程狀態、CPU 性能和內存使用情況。本教程將向您介紹如何使用 NetBeans Profiler 來完成以下操作:

            • 監視應用程序的運行時行為,其中包括:
              • 堆內存大小
              • 垃圾回收統計信息
              • 線程計數
              • 線程狀態:運行、休眠、等待、受阻
            • 確定應用程序方法使用的 CPU 時間
            • 監視應用程序創建對象的過程

            先決條件

            本教程假定您已經具有了一些基本的 Java 編程和 NetBeans IDE 使用經驗。

            教程所需的軟件:

            • 下載并安裝 Java 2 Platform Standard Edition v5.0, Update 4(或更高版本)。請注意,NetBeans IDE 需要完整的 JDK,而不僅僅是 JRE。請記錄此安裝目錄。
            • 下載并安裝 NetBeans IDE v4.1 或 v5.0。請記錄此安裝目錄。當系統提示您選擇 JDK 時,請指定 v5.0, Update 4(或更高版本的)JDK。
            • 下載并安裝用于 NetBeans IDE v5.0 的 NetBeans Profiler v5.0。如果使用的是 NetBeans IDE 4.1,請下載 Milestone 8。
              Profiler 安裝程序會要求您修改 NetBeans IDE 安裝;請指定用于 NetBeans IDE 的安裝目錄。
              注意:Profiler v5.0 只能與 NetBeans IDE v5.0 一起使用;而 Profiler Milestone 8 只能與 NetBeans IDE v4.1 一起使用。
            • 下載教程 zip 文件,其中包括練習中使用的項目。

            本文使用的表示法

            • <NETBEANS_HOME> - NetBeans IDE 安裝目錄
            • <USER_HOME> - 用戶的 home 目錄
            • <tutorial_root> - 解壓縮教程 zip 文件所在的目錄
              • 本文使用 <tutorial_root> 來表示解壓縮此教程的 zip 文件所在的目錄。此教程的 zip 文件的名稱為 profilertutorial.zip。
              • 將教程 zip 文件解壓縮到 <tutorial_root> 目錄時,系統會創建一個名為 netbeansprofiler 的子目錄。例如,在 Windows 操作系統中,如果已將教程 zip 文件解壓縮到驅動器 E:\ 的根目錄中,則系統會創建 E:\netbeansprofiler 子目錄。在 Solaris/Linux 操作系統中,如果已將教程 zip 文件解壓縮到 /home/username 目錄中,則系統會創建 /home/username/netbeansprofiler 子目錄。

            教程練習

            參考資源:



            練習 0:安裝并配置教程環境

            在開始學習教程之前,請先檢查以下內容:

            1. 啟動 NetBeans IDE,并確認 IDE 已打開。通過選擇“性能分析”>“幫助”>“關于性能分析器...”,驗證安是否裝了 NetBeans Profiler。
              • 在 Windows 操作系統中,雙擊 NetBeans IDE 圖標
              • 在 Solaris/Linux 操作系統中,打開終端窗口,然后鍵入 <NETBEANS_HOME>/bin/netbeans
            2. 僅限 NetBeans IDE v4.1:安裝所需的修補程序。
              1. 從“工具”菜單中選擇“更新中心”,以訪問 NetBeans 更新中心。
              2. 確保選中了“NetBeans 修補程序更新中心”,然后單擊“下一步”按鈕。建立連接后,將顯示一個更新列表。
              3. 在“NetBeans 修補程序更新中心”條目下,選擇“NetBeans Profiler(J2EE 項目 - Tomcat5 支持)”。該操作還將自動選擇 "Tomcat 5 Server" 條目。
              4. 單擊“下一步”按鈕,并按照說明進行操作以便 IDE 可以安裝這些修補程序。




            練習 1:監視 Swing 應用程序中的線程狀態(15 分鐘)

            本練習的學習目的:

            在本練習中,您將學習如何使用 NetBeans Profiler 監視 J2SE 應用程序中的線程狀態。這樣,您就可以診斷樣例應用程序中的性能問題。

            背景信息:

            Swing 庫為 J2SE 應用程序提供了圖形用戶界面組件。Swing 庫會使用到多個線程,利用 NetBeans Profiler 這一功能強大的工具,您可以分析出每個線程所花費的處理時間,從而利用這些分析信息來解決性能問題。

            執行步驟:

            1. 選擇“文件”>“打開項目”。找到 <tutorial_root>/netbeansprofiler/exercises 文件夾。選擇 exercise1 文件夾,然后單擊“打開項目文件夾”按鈕。
            2. 在“項目”窗口中,右鍵單擊 exercise1 條目并選擇“清理并生成項目”。然后,再次右鍵單擊 exercise1 條目并選擇“運行項目”。此時,將顯示該程序的窗口,如下所示。

              查看應用程序的窗口

            3. 將 "Seconds Before Notification" 設置為 30。
            4. 單擊 "Start!" 按鈕。請注意,該程序無法正確地刷新屏幕。
            5. 單擊 "Exit" 按鈕。請注意,該程序根本不會作出響應。
            6. 將另一個窗口放在該窗口的某一部分上,以遮擋該窗口的視圖。當移開另一個窗口時,您會注意到樣例應用程序沒有相應地刷新其窗口。如下面的示例所示。


            7. 30 秒后,最終將顯示一個消息框,如下所示。單擊消息框上的 "OK" 按鈕。


            8. 應用程序窗口將再次開始響應。單擊 "Exit" 按鈕將其關閉。
            9. 選擇“性能分析”>“分析主項目”。
            10. 如果出現一個對話框,詢問您是否允許修改項目生成腳本,請單擊“確定”。如下面的示例所示。


            11. 此時會顯示“選擇性能分析任務”對話框。單擊占據較大區域的“監視應用程序”按鈕。
            12. 應選中“啟用線程監視”復選框。
            13. 單擊“運行”按鈕。如果顯示一個對話框,指示您必須先收集 Profiler 的校準信息,請單擊“確定”按鈕。如下面的示例所示。

              選擇“性能分析”>“高級命令”>“運行性能分析器校準”。完成校準后,Profiler 會顯示一個對話框,請單擊“確定”按鈕。如下面的示例所示。

              要進行性能分析,請返回至上面的第 9 步。

            14. 完成上述步驟后,將啟動該應用程序,并且 IDE 會顯示“性能分析器”控制面板,如下所示。


            15. 性能分析器將在其主窗口中顯示線程狀態,如下面的示例所示。


              它使用顏色編碼來顯示線程狀態。

              • 綠色:線程正在運行或準備運行。
              • 紫色:線程正在調用 Thread.sleep(),處于休眠狀態。
              • 黃色:線程正在調用 Object.wait(),處于等待狀態。
              • 紅色:線程在嘗試訪問同步的塊或方法時受阻。

            16. 找到樣例 Swing 應用程序的窗口(NetBeans IDE 窗口可能在其上面)。單擊樣例應用程序中的 "Start!" 按鈕,同時監視標記為 AWT-EventQueue-0 的線程所發生的變化。它將變為綠色并持續這種狀態整整 30 秒鐘,如以下樣例所示。

              此圖形顯示了應用程序沒有響應的原因。標記為 AWT-EventQueue-0 的線程是 Swing 用來處理窗口事件的事件分發線程 (Event Dispatch Thread, EDT)。在正常運行的 Swing 應用程序中,EDT 的大部分時間處于等待狀態而運行的時間卻很少,因為它只有在分發事件時才會運行很短的一段時間。但是,如果應用程序中的事件處理程序未立即返回,則程序將停止響應,就像在此示例中一樣。

            17. 30 秒后,屏幕將顯示應用程序的消息框。找到該消息框(NetBeans IDE 窗口可能在其上面)并單擊 "OK" 按鈕。然后,單擊樣例應用程序的 "Exit" 按鈕,將其關閉。
            18. “項目”窗口與“性能分析器”控制面板共享同一個空間;單擊“項目”標簽將會顯示“項目”窗口。
            19. 在“項目”窗口中,雙擊 exercise1 條目以將其展開,然后展開“源包”和 profilingthreads 條目。右鍵單擊 DisplayForm.java 條目并選擇“打開”。
            20. 在包含 DisplayForm.java 的編輯器窗口中,取消第 132 行至第 157 行的代碼塊注釋。提示:如果未將編輯器配置為顯示行號,請選擇“視圖”>“顯示行號”。
            21. 在包含 DisplayForm.java 的編輯器窗口中,取消(或注釋掉)第 122 行到第 128 行的代碼塊注釋。下圖突出顯示了取消注釋的代碼塊。


            22. 選擇“文件”>“保存”。您剛才刪除了未正確使用 EDT 的代碼,并利用了更穩定可靠的解決方案來替代它?,F在,應用程序可以及時地作出響應。
            23. 選擇“生成”>“生成主項目”(或按 F11 鍵)。
            24. 選擇“性能分析”>“分析主項目”。
            25. 將顯示“選擇性能分析任務”對話框。單擊占據較大區域的“監視應用程序”按鈕。
            26. 確保選中了“啟用線程監視”。
            27. 單擊“運行”按鈕。
            28. 在顯示樣例程序時,單擊 "Start!" 按鈕。請注意,此時的性能分析線程圖已經發生了變化,如以下示例所示。

              EDT 為黃色,應用程序創建的名為 "Our SwingWorker #1" 的線程為綠色。由于 EDT 不是用來執行耗時任務的,因此,按鈕和其他程序控件仍保持響應的狀態。

            29. 在樣例程序中單擊 "Exit"。
            30. 右鍵單擊 Profiler 圖形中的 AWT-EventQueue-0 線程,然后選擇“線程詳細信息”。Profiler 會顯示一個餅圖,表明了每種狀態所花的時間;如以下示例所示。

              該圖形可以幫助您判斷程序在每個線程中所花費的時間是否恰當。上述示例是代碼修復后的示例,因此,它顯示了 EDT 在大部分時間中都處于等待狀態的情形,這正好是該線程應具有的行為。

            31. 在“項目”窗口中,右鍵單擊 exercise1 條目,然后選擇“關閉項目”。

            小結:

            在本練習中,您學習了如何使用 Profiler 來啟動應用程序,以及如何解釋 Profiler 的線程信息圖形,以此來跟蹤 Swing 應用程序中的性能問題。

            返回頁首



            練習 2:確定某個方法使用的 CPU 時間(15 分鐘)

            本練習的學習目的:

            在本練習中,您將學習如何使用 Profiler 來確定某個應用程序的方法所花費的時間。

            背景信息:

            CPU 的性能問題通常與應用程序的特定功能有關。例如,在報告系統中,某個報告的運行速度可能比其他報告慢。只分析應用程序中出現性能問題的部分,可以大大減少性能分析器產生的開銷。在本練習中,您將使用 NetBeans Profiler 來檢查 Web 應用程序中 CPU 的使用情況。在練習 3 中,我們仍然使用該樣例 Web 應用程序來說明如何通過 Profiler 查找內存泄漏。

            執行步驟:

            1. 選擇“文件”>“打開項目”。找到 <tutorial_root>/netbeansprofiler/exercises 文件夾。選擇 exercise2 文件夾,并確保選中“作為主項目打開”。單擊“打開項目文件夾”按鈕。
            2. 在“項目”窗口中,單擊 exercise2 條目,然后從菜單中選擇“生成”>“清理并生成主項目”。
            3. 從菜單中選擇“性能分析”>“分析主項目”。如果出現一個對話框,詢問您是否允許修改項目生成腳本,請單擊“確定”。
            4. 將顯示“選擇性能分析任務”對話框。
            5. 單擊“分析性能”按鈕。
            6. 選擇“部分應用程序”單選按鈕。然后,單擊位于“部分應用程序”單選按鈕旁邊的“選擇”按鈕。此時將顯示“指定根方法”窗口。

              注意:下面的三個步驟僅適用于 Milestone 8。

            7. 在“指定根方法”窗口中,單擊“從項目添加...”按鈕以添加要分析的根方法。將會顯示“選擇方法”窗口。
            8. 在“選擇方法”窗口中,單擊“選擇”按鈕。Profiler 將顯示“選擇類”窗口。
            9. 在“類名”文本字段中輸入 Per。等待 IDE 為您顯示適用的類列表。選擇 Performance 類。單擊“打開”按鈕以打開其方法列表。

              注意:下面的兩個步驟只適用于 Profiler v5.0。

            10. 在“指定根方法”窗口中,單擊“從項目添加...”按鈕以添加要分析的根方法。將會顯示“選擇方法”窗口。
            11. 在“類名”文本字段中,鍵入 demo.Performance,然后按 Enter 鍵。

              查看“選擇方法”對話框

            12. 在根方法列表中單擊 processRequest 方法以將其選中,然后單擊“確定”按鈕。您剛才已將 demo.Performance.processRequest 選中為性能分析的根方法。這意味著,性能分析器將分析 demo.Performance.processRequest 方法和它調用的所有方法,以及這些方法又調用的所有方法,依此類推。性能分析器將從 demo.Performance.processRequest 開始,通過分析方法調用圖形來確定哪些方法需要分析。它將只分析那些需要分析的方法,應用程序的其余部分將在沒有任何性能分析開銷的情況下繼續以最快的速度運行。
            13. 在“指定根方法”窗口中單擊“確定”按鈕。
            14. 在“分析性能”窗口中,從過濾器列表中選擇“快速過濾器”,然后單擊位于“快速過濾器”條目旁邊的 "..." 按鈕以指定進行分析的方法。將顯示“設置快速過濾器”窗口。驗證是否已選中了“排除”單選按鈕。然后,在“過濾器值”文本字段中輸入 org.apache 并單擊“確定”按鈕。這樣,性能分析器將不分析所有 org.apache 包(及其子包)中的方法,即使這些方法被選定的根方法調用也是如此。這會減少性能分析的開銷,并過濾掉無關的信息。

              “設置快速過濾器”對話框

            15. 在“選擇性能分析任務”窗口中,單擊“運行”按鈕。如果出現一個對話框,要求您提供校準信息,請單擊“確定”按鈕;在性能分析器顯示的對話框說明校準已完成后,請單擊該對話框的“確定”按鈕。
            16. IDE 將啟動 Tomcat,并在 Web 瀏覽器窗口中顯示 Web 應用程序的 index.jsp 頁。同時,將在后臺運行性能分析器。注意:缺省情況下,將在成為焦點的瀏覽器窗口中顯示 index.jsp 頁;您可能需要打開另一個瀏覽器窗口,以便在運行 Web 應用程序時可以閱讀這些說明。
            17. 因為已選擇了 demo.Performance.processRequest 作為根方法,所以,您需要使用導致該根方法運行的 Web 應用程序部分:在 Web 瀏覽器中,單擊“性能問題”以轉至“性能”演示頁。在“性能”演示頁上的輸入文本字段中輸入 123456。請不要選中“已優化”選項。單擊“提交查詢”按鈕,計算小于或等于 123456 的最大素數。
            18. 需要幾秒鐘的時間才能出現響應,這是因為計算最大素數的算法存在一些性能問題,同時,在監視 processRequest 方法的性能時,性能分析器也會產生一些開銷。
            19. 當瀏覽器中顯示 "123449" 結果后,請單擊 “獲取結果”按鈕 按鈕,或者選擇“性能分析”>“生成收集結果的快照”。單擊位于 CPU 使用情況快照底部的“組合”標簽。性能分析器將顯示最新的性能結果,如下所示。

              查看性能結果。

              頂部窗口顯示了從根方法開始的完整方法調用圖形。底部窗口是重點描述的部分;它顯示了應用程序中的熱點,即執行時間最長的那些方法。

            20. 要查看并解釋這些結果,請注意 processRequest 方法總共運行的時間為 4308 毫秒 (ms)。然而您會發現,運行 processRequest 方法本身的指令只花費了很少的時間,processRequest 的“自用時間”僅為 10.1 毫秒。絕大部分時間花在了 processRequest 調用的其他方法上。底部窗口中顯示的熱點是按“自用時間”進行排序的。通過查看該列表,您可以看到 calculate 方法占用了 97.8% 的執行時間。考慮到為 calculate 方法分配的工作量,這就不足為奇了。
            21. 為了幫助您確定如何優化應用程序,NetBeans Profiler 可以識別代碼中無法預料的瓶頸,或者識別妨礙應用程序隨意縮放的瓶頸。單擊熱點列表中的 calculate 條目以了解時間究竟花在什么地方,這會更新調用圖形窗口以顯示 calculate。因為 calculate 方法不調用任何其他方法,所以請右鍵單擊 calculate 條目,然后選擇“轉至源代碼”以便檢查源代碼。您會發現它使用了效率很低的算法,所以應該重新設計這種算法。
            22. 選擇“性能分析”>“重置收集的結果”以清除性能分析器的緩沖區。要將 calculate 的運行時與優化的算法 calculate2 作比較,請在 Web 瀏覽器中選中“已優化”選項,然后單擊“提交查詢”。等待顯示結果,然后重新選擇“性能分析”>“生成收集結果的快照”。請注意,processRequest 方法只運行了 107 毫秒,而 calculate2 方法所花的時間還不到執行時間的 10%!

              查看性能結果。


            23. 注意:我們將繼續在本練習的基礎上進行下面的練習,因此,請不要關閉任何窗口。

            小結:

            在本練習中,您學習了如何使用性能分析器執行方法性能分析。

            返回頁首



            練習 3:分析對象創建過程以查找內存泄漏(20 分鐘)

            本練習的學習目的:

            作為練習 2 的后續練習,我們將在本練習中學習如何解釋某些性能分析器的圖形以監視應用程序創建對象的過程。下面將顯示一個內存泄漏示例。

            執行步驟:

            1. 本練習是在練習 2 的基礎上進行的,因此,請務必遵循練習 2 中的步驟。
            2. 從菜單中選擇“性能分析”>“分析主項目”。如果出現一個對話框,詢問您是否要停止當前的性能分析器進程以啟動新進程(如下所示),請單擊“是”按鈕繼續執行。

              “停止并重新啟動性能分析器”對話框

              將顯示“選擇性能分析任務”對話框。

            3. 在“選擇性能分析任務”對話框中,單擊占據較大區域的“監視應用程序”按鈕。
            4. 單擊“運行”按鈕。IDE 將會在左側顯示“性能分析器”控制臺。單擊 查看“遙測概覽”按鈕 按鈕,或者選擇“性能分析”>“視圖”>“遙測概覽”。NetBeans Profiler 將在底部的輸出窗口中顯示三個圖形,如下所示。

              查看監視器圖形

              在左側的圖形中,紅色的陰影部分表示分配的 JVM 堆大小。紫色的覆蓋部分表示實際使用的堆空間大小。在上面的示例中,上次更新所分配的堆大小已超過了 20 MB。其中,實際用來保存 Java 對象的堆大小略大于 10 MB。

              右側圖形顯示了 JVM 中的活動線程數。

              中間的圖形顯示了兩種重要的堆統計信息。

              • 藍線是 JVM 執行垃圾回收的時間占執行時間的百分比,它是以圖形右側上的 Y 軸為參照繪制的。JVM 執行垃圾回收所花的時間不能用來運行應用程序。因此,如果藍線占據較大的百分比,則需要考慮調整 JVM,方法是:配置更大的堆大小(請參閱 -Xmx 參數文檔),或者轉換到不同的垃圾回收算法中。
              • 紅線表示存活的生成數,它是以圖形左側的 Y 軸為參照進行繪制的。存活生成數是指 JVM 堆上所有 Java 對象不同生存期的數量,其中“生存期”被定義為對象存活時的垃圾回收次數。如果存活生成數的值較小,則表明堆上的大部分對象的存活時間基本相同。但是,如果存活生成數的值隨著時間的變化而增長到一個很高的比率,則表明應用程序正在分配新的對象,同時保持對已分配的多個舊對象的引用。如果實際上不再需要這些舊對象,則應用程序正在浪費(或“泄漏”)內存。

            5. 性能分析器可以對 CPU 性能或內存使用情況進行詳細的分析,但不能同時進行這兩種分析。要了解有關在 JVM 堆上分配對象以及執行對象的垃圾回收的詳細信息,請修改性能分析器的設置。單擊 查看“修改性能分析”按鈕 按鈕,或者選擇“性能分析”>“修改性能分析”。
            6. 單擊“分析內存使用情況”按鈕。
            7. 選擇“記錄對象創建和垃圾回收”單選按鈕。
            8. 選中“記錄分配的棧跟蹤”復選框。
            9. 單擊“確定”按鈕。
            10. 現在,您已經選擇了分析內存使用情況,您需要運行應用程序以確定它是否有效地使用了內存。單擊“內存泄漏”以轉至 MemoryLeak 演示頁。
            11. 在 MemoryLeak 演示頁上,單擊“開始泄漏”。
            12. 請注意存活生成數圖形中的峰值,如以下示例所示。這表明可能出現了內存泄漏。

              存活生成數圖形所示的峰值。

            13. 選擇“性能分析”>“視圖”>“實時結果”。Profiler 將顯示 JVM 堆中分配的對象的動態視圖。缺省情況下,它將按每個類的所有實例使用的字節數進行排序。由于懷疑可能出現了內存泄漏,因此,請單擊“生成數”列,按每個類的不同對象生存期數量對顯示結果進行排序。下面顯示了得到的顯示結果示例。

              先前的生成數圖形。
              這些列提供了對象分配和內存使用情況信息。

              • “分配的對象”是性能分析器正在監視的對象數。在本示例中,共監視了 38 個 float[] 實例。缺省情況下,該數字約為應用程序實際分配的對象數的 10%。通過只監視已創建對象的一部分,性能分析器可以顯著地減少它在 JVM 中的開銷,這樣,應用程序就幾乎可以按最快的速度運行了。
              • “活動對象”是仍在 JVM 堆中并因此占用內存的已分配對象數。
              • 兩個“活動字節”列顯示了活動對象所占用的堆內存量。一個列顯示圖形,另一個列顯示文本。
              • “平均生存期”值是使用活動對象計算的。每個對象的生存期是它存活時的垃圾回收次數。生存期總和除以活動對象數得到的結果就是平均生存期。
              • “生成數”值是使用活動對象計算的。與平均生存期相同,對象生存期是它存活時的垃圾回收次數?!吧蓴怠敝凳腔顒訉ο蟮牟煌嫫跀盗?。

            14. 隨著程序繼續運行,性能分析器將更新顯示結果。請留意 float[]double[] 條目。請注意其生成數值是如何持續增加的。結果是,float[]double[] 在列表中持續上移。最終,它們會顯示在列表的頂部,緊靠 java.util.HashMap$Entry(其生代數值也在不斷增加)下面。隨著應用程序繼續運行,java.util.HashMap$Entry、float[]double[] 生成數值持續增加,但任何其他類沒有增加。如下面的示例所示。

              后期的生成數圖形。

            15. 要了解導致生成數值持續增加的原因,請選擇“性能分析”>“生成收集結果的快照”。按生成數對顯示結果進行排序。右鍵單擊 double[] 條目,然后選擇“顯示分配棧跟蹤”。性能分析器將顯示所有分配了一個或多個 double[] 對象的方法。如下面的示例所示。

              double[] 棧跟蹤。
              請注意,在分配了 double[] 對象的方法中,只有一個方法創建了具有較大生成數值的 double[] 對象。該方法是 run(),它位于具有相應名稱 demo.memoryleak.LeakThread 的類中。

            16. 右鍵單擊 run() 方法條目,然后選擇“轉至源代碼...”。性能分析器將顯示源代碼,如下所示。引起泄漏的代碼
              請注意,正在分配 double[]float[] 對象,并隨后將其放在 HashMap 中。但一直并未刪除它們,這意味著,HashMap 保留的引用將會妨礙 JVM 對這些對象進行垃圾回收。這是非常典型的 Java 內存泄漏:將對象放在 Map 中,然后就忘記處理它們了。由于本示例中使用的 Map 就是 HashMap,因此,關聯的 java.util.HashMap$Entry 對象也出現了泄漏。

            17. 選擇“性能分析”>“停止”來結束性能分析會話,或者單擊 “停止”按鈕 按鈕。
            18. 在“項目”窗口中,選擇 exercise2 條目,然后從菜單中選擇“文件”>“關閉項目”。

            小結:

            在本練習中,您學習了如何使用性能分析器來監視應用程序創建對象的過程。您還看到了性能分析器在應用程序出現內存泄漏時所提供的各種類型的分析指數。

            posted @ 2006-08-31 08:42 人生亦編程 閱讀(548) | 評論 (0)編輯 收藏

            ?  1,事業永遠第一
              雖然金錢不是萬能的,但沒有錢是萬萬不能的,雖然這句話很俗,但絕對有道理,所以30歲之前,請把你大部分精力放在你的事業上.
              2,別把錢看得太重
              不要抱怨自己現在工資低,銀行存款4位數以下,看不到前途,現在要做的就是努力學習,即使你文憑再高,怎么把理論運用到實踐還是需要一個很長的鍛煉過程,社會永遠是一所最博大的大學,它讓你學到的知識遠比你在學校學到的重要得多,所以同樣,你也別太介意學歷低.30歲之前靠自己能力買車買房的人還是極少.
              3,學會體諒父母
              別嫌他們嘮叨,等你為人父了你就知道可憐天下父母心,在他們眼里你還是個孩子,但他們真的老了,現在得你哄他們開心了,也許只要你的一個電話,一點小禮物,就可以讓他們安心,很容易做到.
              4,交上好朋友
              朋友對你一生都影響重大,不要去結識太多酒肉朋友,至少得有一個能在關鍵時刻幫助你的朋友,如果遇到這么一個人,就好好把握,日后必定有用,不管他現在是富還是窮.
              5,別太相信愛情
              心中要有愛,但請別說也別相信那些瓊瑤阿姨小說里面的山盟海誓,世上本無永恒,重要的是責任,但女人心海底針,心變了,一切都成枉然,你要做的就是該出手時就出手,該放手時別猶豫.30歲之前的愛情不是假的,但只是大多數人都沒有能真正把握好的能力,所以學會量力而行.
              6,別擔心至今還保留初吻
              愛情不在多而在精,別以為自己20多歲還沒碰過女孩子就害怕自己永遠找不到老婆
            .以后你會有很多機會認識女孩子,要知道這個社會雖然男人多于女人,但現實是女人其實比男人更擔心這個問題.男人30一枝花,你在升值而不是貶值,成熟的愛情往往更美麗更長久,所以不要像瘋狗一樣看到女孩就想追,學會品味寂寞.
              7,不要沉迷于任何東西
              所謂玩物而喪志,網絡游戲是你在出校門之前玩的,你現在沒有多余的時間和精力花費到這上面,否則你透支的東西以后都得償還.一個人要有興趣,愛好,但請分清楚輕重. ps.記得一個初中的好友給了我八個字:玩物喪志、玩人喪德。所以我一直過得都兢兢業業。
              8,年輕沒有失敗
              不要遇到挫折就灰心
            ,年輕人要時刻保持積極向上的態度.失敗了,重來過;失去了,再爭取別的。錯過了,要分析,下次來,要把握;幼稚了,下次,成熟點。不要緊,會好的,哪怕到了極點,也不要放棄,相信一定可以挺過去。不要消極,會好的。曾經的錯,過去了,總不能回味在過去?,F在的,很好,累完了,很舒服。不要傷,總會有人在支撐你。
              9,不要輕易崇拜或者鄙視一個人
              人都有偶像,但請擁有你自己的個性.不要刻意去模仿一個人,因為你就是你,是唯一的,獨一無二的,要有自信.也不要全盤否定一個人,每個人是有價值的,如果你不能理解他,也請學會接受.
              10,要有責任心.
              不管你曾經怎樣,但請從現在開始做一個正直的人.男人要有責任心,無論是工作還是生活上,一個有責任心的人才能讓別人有安全感,才能讓別人覺得你是一個值得信賴的人.我們不要懦弱,但請不要傷害愛你的人和你愛的人,尤其是善良的女孩,因為這個世界善良的女孩不多了,即使不想擁有,但也請讓她保持她美麗的心.
              11,男人的外貌并不重要.
              不要為自己的長相身高而過分擔心,一個心地善良,為人正直的男人遠比那些空有英俊相貌,挺拔身材但內心齷齪的男人要帥得多.如果有人以貌取人,請不要太在意,因為你不用去為一個低級趣味的人而難過.ps.感激涕零,終于遇到一個知音了......
              12,學會保護身體
              不要以為現在抽煙喝酒,熬夜通宵也沒什么事.那是因為你的身體正處于你一生的黃金時段.30歲以后你就能明白力不從心這個實囊庖辶?身體是革命的本錢,沒有好的身體什么也做不了,所以要盡量讓自己過有規律的健康生活.
              13,別覺得一事無成.
              你現在還沒有資格談成功,當然如果你有千萬資產的除外.一開始太固定的職業并不一定是好事,或許在不斷的改行當中,你會學到更豐富的知識,而且可以挖掘出自己的潛能,找到最適合你的工作.
              14,請認真工作
              即使你現在的工作再怎么無聊再怎么低級,也請你認真去對待,要知道任何成功人士都是從最小的事做起,或許你現在學不到多么了不起的知識,但起碼你要學會良好的工作態度和工作方法,這對以后很重要.
              15,請認真對待感情.
              不要羨慕那些換女人像換鞋一樣的花花公子,逢場作戲的愛情只是讓你浪費時間浪費精力,一個人最痛苦的不是找不到愛人,而是心中沒有了愛,當你把我愛你3個字變成你最容易說的一句話時,那么你在愛情的世界里已經很難找到真正的幸福了.愛情沒有公平,總有一個人比對方付出得多,即使沒有結果,也別覺得不值,因為你的付出不光是為了她,也是為了你自己的愛,為愛付出是很可貴的,贊自己一下.
              16.請留一點童心
              在內心深處,哪怕只是一個很小的角落里,請保持一份童心,不是幼稚,但有的時候單純一點會讓你很快樂.所以不要太計較得失,生活本無完美.


            ps.深合吾心。

            posted @ 2006-08-28 19:43 人生亦編程 閱讀(140) | 評論 (0)編輯 收藏

            ?????????在德國“萊比錫游戲展2006(Game Convention 2006)”大展上,美國暴雪公司(Blizzard)首席運營官Paul Sams暗示,《星際爭霸2(Starcraft2)》將有可能在2007年面世。

              在接受媒體采訪時,這位暴雪公司COO表示,《星際爭霸》是他一直以來最喜歡的游戲之一。暴雪公司目前正在同時開發三款不同的游戲,而他自己將有幸成為向世界玩家公布《星際爭霸2》的第一人。

              此外,他暗示暴雪公司將在2007年召開公司主線產品的發表會,但沒有提供有關此次會議以及即將在發表會上公布的產品的細節資料。媒體廣泛猜測,《星際爭霸》和《 暗黑破壞神 (Diablo)》新作即將出現在此次發表會上。

            posted @ 2006-08-28 13:01 人生亦編程 閱讀(175) | 評論 (0)編輯 收藏

            ?????????喬布斯去年在斯坦福大學畢業典禮上的講話。
              下面是演講原文的節選。
              今天我非常榮幸來參加你們的畢業典禮。我自己從來沒有從大學畢業,所以今天應該是我距離畢業典禮最近的一次。今天我只想給你們講三個我生活中的真實故事。僅此而已,沒有什么長篇大論,就是三個故事。
              第一個故事是關于把點連成線。
              十七歲的時候,我進了大學。當時我很天真,選了一所學費幾乎和斯坦福大學一樣昂貴的學校,當工人的養父母傾其所有的積蓄為我支付了大學學費。讀了六個月后,我卻看不出上學有任何意義。我既不知道自己這一生想干什么,也不確定大學能幫我弄明白自己想干什么。所以,我決定退學。當年做出這個決定的時候心里還有點打鼓,但現在往回看,那卻是我有生以來做出的最好的決定之一。從退學那一刻起,我就可以不再選那些我毫無興趣的必修課,而開始去旁聽一些在我看來更有意思的課。
              當時,我所在的學校的書法課大概是全國最好的。校園里所有的公告欄和每個抽屜標簽上的字都寫得非常漂亮。我退學后不用正常上課了,所以我決定選一門書法課,學學怎么寫好字。
              當時我并不指望書法在以后的生活中能有什么實用價值。但是,十年之后,我們在設計第一臺 Macintosh 計算機時,以前學的書法一下子浮現在我眼前。于是,我們把這些東西全都設計進了計算機中。這是第一臺有這么漂亮的文字版式的計算機。要不是我當初在大學里偶然選了這么一門課,Macintosh 計算機絕不會有那么多種印刷字體或間距安排合理的字號。要不是退了學,我也不會碰巧選了那門書法課。當然,我在大學里不可能把當時的點向前延伸,連成一條線;但是現在回過頭去看,那條線卻無比清晰。
              你們現在同樣不可能從現在這個點上連出通向未來的那一條線。只有當你回頭看時,才會發現這些過去的點其實已經畫出了那條線。所以,要相信每一個點遲早都會連接到一起。
              第二個故事是關于好惡與得失。
              幸運的是,我在很小的時候就發現自己喜歡做什么。我在 20 歲時和沃茲在我父母的車庫里辦起了蘋果公司。我們干得很賣力,十年后,蘋果公司就從車庫里我們兩個人發展成為一個市值 20 億美元、擁有4000多名員工的大企業。而在此之前的一年,我們剛推出了我們Macintosh電腦,當時我剛過而立之年。可后來,我被解雇了。你怎么會被自己辦的公司解雇呢?是這樣,隨著蘋果公司越做越大,我們聘請了一位我認為非常有才華的人與我一道管理公司。在開始的一年多里,一切都很順利。可是,隨后我倆對公司前景的看法開始出現分歧,最后我倆反目了。這時,董事會站在了他那一邊,所以在30 歲那年,我離開了公司,而且這件事鬧得滿城風雨。我成年后的整個生活重心都沒有了,這使我心力交瘁。
              一連幾個月,我真的不知道應該怎么辦。這次失敗弄得沸沸揚揚的,我甚至想過逃離硅谷。但是,漸漸地,我開始有了一個想法——我仍然熱愛我過去做的一切。在蘋果公司發生的這些風波絲毫沒有改變這一點。于是,我決定從頭開始。
              雖然當時我并沒有意識到,但事實證明,被蘋果公司炒魷魚是我一生中碰到的最好的事情。盡管前景未卜,但從頭開始的輕松感取代了保持成功的沉重感。這使我進入了一生中最富有創造力的時期之一。
              在此后的五年里,我開了一家名叫 NeXT 的公司和一家叫Pixar的公司,我還愛上一位了不起的女人,后來娶了她。Pixar公司推出了世界上第一部用電腦制作的動畫片《玩具總動員》,它現在是全球最成功的動畫制作室。世道輪回,蘋果公司買下 NeXT 后,我又回到了蘋果公司,我們在 NeXT 公司開發的技術成了蘋果公司這次重新崛起的核心。我和勞倫娜也建立了美滿的家庭。
              我確信,如果不是被蘋果公司解雇,這一切決不可能發生。這是一劑苦藥,可我認為苦藥利于病。有時生活會當頭給你一棒,但不要灰心。我堅信讓我一往無前的唯一力量就是我熱愛我所做的一切。所以,一定得知道自己喜歡什么,選擇愛人時如此,選擇工作時同樣如此。工作將是生活中的一大部分,讓自己真正滿意的唯一辦法,是做自己認為是有意義的工作;做有意義的工作的唯一辦法,是熱愛自己的工作。你們如果還沒有發現自己喜歡什么,那就不斷地去尋找,不要急于做出決定。就像一切要憑著感覺去做的事情一樣,一旦找到了自己喜歡的事,感覺就會告訴你。
              我的第三個故事是關于死亡。
              17 歲那年,我讀到過這樣一段話,大意是:“如果你把每一天都當作生命的最后一天過,總有一天你的假設會成為現實。”我記住了這句話,從那時起,33 年過去了,我每天早晨都對著鏡子捫心自問: “假如今天是我生命中的最后一天,我還會去做今天要做的事嗎?”如果一連許多天我的回答都是“不”,我知道自己應該有所改變了。
              大約一年前,我被診斷患了癌癥。那天早上七點半,我做了一次掃描檢查,結果清楚地表明我的胰腺上長了一個瘤子,可那時我連胰腺是什么還不知道呢!醫生告訴我說,幾乎可以確診這是一種無法治愈的惡性腫瘤,我最多還能活 3 到 6 個月。
              我整天都想著診斷結果。到了晚上,我做了一次組織切片檢查,他們把一個內窺鏡通過喉嚨穿過我的胃進入腸子,用針頭在胰腺的瘤子上取了一些細胞組織。當時我用了麻醉劑,陪在一旁的妻子后來告訴我,醫生在顯微鏡里看了細胞之后叫了起來,原來這是一種少見的可以通過外科手術治愈的惡性腫瘤。我做了手術,現在好了。
              這是我和死神離得最近的一次,我希望也是今后幾十年里最近的一次。有了這次經歷之后,現在我可以更加實在地和你們談論死亡,那就是:誰都不愿意死。即使是那些想進天堂的人也不會愿意為了進天堂而去死。然而,死亡是我們共同的歸宿,沒人能擺脫。我們注定會死,因為死亡很可能是生命最好的一項發明。它推進生命的新辰換代?,F在,你們就是新的,但在不久的將來,你們也會逐漸成為舊的,也會被淘汰。
              你們的時間都有限,所以不要按照別人的意愿去活,這是浪費時間。不要讓別人觀點的聒噪聲淹沒自己的心聲。最主要的是,要有跟著自己感覺和直覺走的勇氣。無論如何,感覺和直覺早就知道你到底想成為一個什么樣的人,其它的都不重要。

            posted @ 2006-08-25 12:26 人生亦編程 閱讀(110) | 評論 (0)編輯 收藏

            一個新手去收高利貸,他把借條拿出來*笑著說:白紙黑字明明白白地寫著你欠我100萬!難道你想賴帳?!人家表示確實沒有那么多錢,他威脅道:哼哼!別怪我沒提醒你!明天再交不出錢,你的房子就像它一樣——他掏出打火機就把借條燒了……

            一只老鼠被貓追趕,誤入花店。老鼠發現無路可逃,順手抱起一束玫瑰花當武器,作頑強抵抗……貓驚呆了,立馬低下了頭,羞澀地說:死鬼,太突然了…….


            護士:“醫生,不好了!剛才那個病人吃了我們給她的藥,一出診所的們就暈倒了!”醫生:“趕快,把她的身體翻個個兒,擺成是剛剛進門的樣子!”


            執行死刑的警官走進牢房,一邊抖著雨衣一邊向犯人宣布命令,犯人驚異地說:冒這么大的雨去刑場?警官說:你有什么可抱怨的,我還得冒著雨回來呢!


            唐僧:此番取經應當找個快捷方式!

                悟空:坐飛機比騎馬快!

                八戒:神六更快!

                沙僧拿出一支槍:聽說這玩藝兒立馬就送人上西天。


            一個人騎摩托車喜歡反穿衣服,就是把扣子在后面扣上,可以擋風。一天他酒后駕駛,翻了,一頭栽在路旁。

              警員趕到后...

              警員甲:好嚴重的車禍。

              警員乙:是啊,腦袋都撞到后面去了。

              警員甲:嗯,還有呼吸,我們幫他把頭轉回來吧。

              警員乙:好.....一、二使勁,轉回來了。

              警員甲:嗯,沒有呼吸了......


            問: 世界上最最黑暗的動漫人物是誰?

            答: 機器貓

            為什么: 因為他伸手不見五指

            問: 世界上最富有同情心的動漫人物是誰?

            答: 還是機器貓

            為什么: 因為他總是向人伸出 圓手 !


            一對情侶吵架。女:“你每一樣東西都比不上任何人!”男:“對,尤其是女朋友!”


            女:你喜歡我天使的臉孔,還是魔鬼的身材?男:我……我喜歡你的幽默感。


            一高中男孩,半夜打電話給他女友談情說愛。

            很不幸被女孩的母親接到,問明來意后女友的母親很不悅地問:「你姓啥?」

            男孩說:「我姓魏?!?

            母親又問:「魏什么?」

            這時男方緊張的回答:「我也不知道為什么?我爸也姓魏。」


            一個人在沙漠里快要餓死了,這時他撿到了神燈。

            神燈:“我只可以實現你一個愿望,快說吧,我趕時間?!?

            人:“我要老婆……”

            神燈立刻變出一個美女,然后不屑的說:“都快餓死了還貪圖美色!可悲!”說完就消失了。

            人:“……餅。”

            (老婆餅是一種糕點)


            小米粒:“媽媽,我餓!”

            米媽媽:“乖,爸爸找不到工作,家里已經沒有吃的了。”

            小米粒:“可是我餓~~~”

            米媽媽:“唉……好吧,你去隔壁借點咸菜,我去給你爸爸燒洗澡水。”


            有一人獨自在森林中冒險,突然發現自己被食人族重重包圍。于是對天空大喊:“我死定了,上帝救救我!”

            只見天空出現一到光傳來一個聲音:“還不一定,你再撿起地上一顆大石頭,把帶頭的酋長砸死?!庇谑撬麚炱鸬厣献畲蟮囊活w石頭,狠狠的砸向酋長,正好把酋長砸死。族人全都呆了一呆,接著怒目相向,這時天上又傳來一陣聲音:”現在你才真的死定了?!?


            一個伐木工人去應征工作

            工頭:前面的樹林你去試試看...看你一分鐘能鋸幾棵樹.....

            過了一分鐘....

            工頭:哇....一分鐘20棵....太厲害了.....你以前在哪工作的?

            工人:撒哈拉森林......

            工頭:沒聽過ㄝ......我只聽過撒哈拉沙漠ㄝ......

            工人:對啊.....后來改名字啦


            警察:“說,你叫什么?”

            犯人:“我叫成龍?!?

            警察:“你怎么不叫陳真,給我把態度放端正了~好好說你叫什么~?”

            犯人:“我叫陳真。”


            王先生的兒子讀小學三年級時,有一天又因數學屢教不會,

            被他個性急躁的媽媽痛罵。

            王先生在書房外,聽到兒子被罵得很慘,

            心想等一下兒子被罵完出來,我要安慰他一下,免得在他小心靈里留下被罵的陰影。

            兒子被罵完,垮著一張臉出了書房,

            為先了解他被痛罵后心里的感受,王先生先問他:「被媽媽罵,你有什么感覺?」

            只見兒子用哀怨的眼神看著他說:

            「你為什么要娶她?」


            有兩個外國人到家樂福去購物,結帳時,店員問:「Can you speak chinese?」

              兩個外國人用國語回答:「如果你講慢一點的話,我們可以聽的懂!」

              店員說:「Can...you...speak...chinese?」


            西班牙跳舞

            國內某位人士,有一次因公至西班牙。

            某天晚上有一場舞會,這位人士帶著夫人去參加,可是到達會場時,舞會已經開始了,於是他拉著夫人往空無一人的舞池,兩人便翩翩起舞!音樂結束後,卻發覺全場的人都在舞池旁,瞪大了眼睛看他們倆人....

            他就問他的西班牙朋友:「為什麼你們不一起跳舞呢?」

            他的西班牙朋友說:「...剛剛是西班牙國歌耶??!」


            電影院里。

            女:你怎么把橘子皮扔在地上???

            男:怎么,難道要讓我扔橘子肉嗎?


            一對恩愛甚篤的夫婦正慶祝他們的金婚日。

            看熱鬧的中年鄰居問老生先說:

            「為什么你們可以維持五十年幸福美好的婚姻,打從我出生起,就未曾聽過你們吵架的聲音,難道你們之間從來沒有任何的爭執嗎?」

            老先生說:「爭執當然是有的,不過都不會擴大。我從蜜月旅行的時候就懂這個道理了...記得當時交通不便我們到大峽谷去度蜜月,一個人各雇了一匹驢子。

            她的驢子顯然好吃懶做,走沒有多久就賴在路邊休息。

            我只聽到我太太冷冷地說:『第一次?!?

            驢子第二次想偷懶的時候,她又指著驢子說:『這是第二次?!?

            當驢子第三次不肯走時候,她不慌不忙的掏出她租用的手槍,就把它給斃了!」

            中年鄰居老先生詫異說:「尊夫人真是太殘忍了!」

            老先生說道:「可不是嗎?我看不過去停在路邊指責她的不是。她并不跟我爭辯只是冷冷地對我說:『第一次』?!?


            小張在國中教書,人長得高高帥帥的,但只要一緊張,講話就會口吃。

            有一次月考監考時,他發現有一位學生低著頭翻書找答案;他氣急敗壞,指著作弊的學生大吼:「你、你、你、你、你、你竟敢作弊,給我站起來!」話一說完,立刻有六個學生站了起來。

            posted @ 2006-08-25 12:25 人生亦編程 閱讀(103) | 評論 (0)編輯 收藏

            1.最大的游戲:傳送之物:逝者的鎮魂歌》 25.6G

            ?? 目前最大的游戲就是即將于8月31日在XBOX360上推出的S.RPG游戲巨作<傳送之物:逝者的鎮魂歌>,測試版容量為25.6G。

            2.世界上最小的3DFPS游戲  90K

            3.世界上占用面積最大的游戲  

            ?? 2000平米的俄羅斯方塊游戲,這個巨大的游戲使用了一幢11層高的大樓,超過10,000個的圣誕節小彩燈,在一臺Linux電腦的控制下,完成了這個不可思議的游戲。

            ?

            4.世界上最無聊游戲——《Desert bus》,同時它也是跳票時間最長的游戲,11年!
              這款游戲的目標非常簡單:把一輛巴士從美國亞利桑那州土桑市開到拉斯維加斯。不過游戲中的時間和現實中同步,也就是說游戲至少需要耗時8個小時,更“妙”的是游戲中看不到任何風景,甚至連1輛車都沒有,道路兩側只有無盡的沙漠。而且你的巴士車有點問題,總是會慢慢向右偏,因此還需要時不時按下左轉鍵校正方向,想在開車的8小時內做其它事幾乎是不可能的。傳說如果你能把巴士成功開到終點,可以在游戲中得到1分!看到這里相信大家都能理解這款游戲為何沒有發布。

            5.世界上最早的網絡游戲  《UO網絡創世紀》
              今日大多數網絡游戲設計者,其創意啟蒙來源大都來自同一個網絡游戲--《UO網絡創世紀》,而《UO網絡創世紀》的歷史可謂相當悠久,也形成了自從 1997 年以來,估計有超過5000名玩家因游戲結識進而成為夫妻!

            6.世界上最貴的游戲 全球最貴的游戲軟件,價值20000英鎊的《2006 FIFA世界杯》

            ?

            7.世界上最早的電子游戲<ping>
              1972年,美國的雅達利公司的<ping>是模擬兩個人打乒乓球,就是在兩條線中間有一個點在動。當時是很著名的游戲……操縱器就是當年一個搖桿上有一個按鈕的那種。很可惜這個沒有畫面。

            8.世界上賣出做多的游戲 最終幻想系列


              至盡以公布的有13作發售:1987年12月28日 機種:FC 發售量:52萬份
              最終幻想2
              發售:1988年12月17日 機種:FC 發售量:76萬份
              最終幻想3
              發售:1990年4月27日 機種:FC 發售量:140萬份
              最終幻想4
              發售:1991年7月19日 機種:SFC 發售量:144萬份
              最終幻想5
              發售:1992年12月6日 機種:SFC 發售量:245萬份
              最終幻想6
              發售:1994年4月2日 機種:SFC 發售量:日本國內300萬份
              最終幻想7
              發售:1997年1月31日 機種:PS,PC 發售量:846萬份
              最終幻想戰略版
              最終幻想8
              發售:1999年2月11日 機種:PS 發售量:687萬份
              最終幻想9
              發售:2000年7月6日 機種:PS 發售量:550萬份
              最終幻想10
              發售:2001年7月19日 機種:PS2 發售量:300萬份
              最終幻想12
              首批出貨達到200萬套統計中

            9.世界上補丁做多的游戲——WAR3?。玻穫€補丁

            10.序作最多的游戲——EA的FIFA系列  從93開始大家自己數,還包括足球經理。

            ?

            posted @ 2006-08-23 21:44 人生亦編程 閱讀(161) | 評論 (0)編輯 收藏

            以前是井底之蛙,不入其門,不聞其道,殊不知有很多需要學習的。
            現在是水煮青蛙,適應了環境,卻不會發現越來越熱的水。

            posted @ 2006-08-23 21:15 人生亦編程 閱讀(57) | 評論 (0)編輯 收藏

            今天第一次看到海的樣子。
            和想象中的差遠了,沒有藍天,沒有碧浪,沒有海風......
            當時的感覺,還不如過武漢長江大橋時那么深刻,長江的水的確會讓人感到恐懼。這里的海沒有什么特別的,近處是船家,以船為家的貧苦人,遠處是白茫茫一片,依稀可見香港的輪廓,海邊是黑色的巖石,沒有沙,沒有海浪。
            這就是海的初見。

            posted @ 2006-08-19 13:29 人生亦編程 閱讀(92) | 評論 (0)編輯 收藏

            老徐說:“鋼琴,我最鐘愛的樂器,哀而不傷,快樂但絕不輕浮。”
            原來如此,怪不得我那么喜歡鋼琴,原來是這個原因。

            posted @ 2006-08-18 08:45 人生亦編程 閱讀(113) | 評論 (0)編輯 收藏

            僅列出標題
            共9頁: 1 2 3 4 5 6 7 8 9 
            亚洲AV无码1区2区久久| 久久久黄片| 久久这里只有精品首页| 久久99精品国产麻豆婷婷| 精品国产一区二区三区久久| 99久久精品日本一区二区免费| 亚洲成色WWW久久网站| 无码人妻久久一区二区三区免费 | 久久久亚洲AV波多野结衣| 热综合一本伊人久久精品| 青青草原综合久久大伊人导航| 久久强奷乱码老熟女| 中文字幕精品无码久久久久久3D日动漫 | 精品久久久无码人妻中文字幕| 少妇人妻综合久久中文字幕| 中文字幕无码精品亚洲资源网久久| 久久久久久久97| 国产精品免费看久久久| 国产激情久久久久影院老熟女免费| 久久精品视频91| 波多野结衣久久一区二区| 久久久久久久久久久久中文字幕 | 久久精品国产亚洲Aⅴ香蕉 | AV无码久久久久不卡蜜桃| 精品久久久久久无码专区 | 国产999精品久久久久久| 久久丝袜精品中文字幕| 国内精品综合久久久40p| 99久久免费国产精精品| 99久久国产亚洲高清观看2024| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 色综合久久久久综合99| 日韩精品久久久久久免费| 国产成人无码精品久久久久免费| 久久频这里精品99香蕉久| 久久香蕉一级毛片| 国产毛片欧美毛片久久久| 91精品国产高清久久久久久91| 国产精品乱码久久久久久软件 | 久久青青草原综合伊人| 亚洲中文久久精品无码ww16|