国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

從C++到Java,10年技術生涯的幾點思考

發布時間:2011-4-20 16:05    發布者:1046235000
關鍵詞: java
不知不覺,做程序工作已經10年了,從最初學習C++到Java,從困惑到清晰,感覺真的有不少東西可寫,不過總覺得不成體系,大概看了太多八股文章的緣故,被憋得實在難受。所以不管了,想到什么寫什么吧。

  1、從C++到Java

  C++和Java誰快?從算法上講我認為毫無疑問是匯編〉C++〉Java,不要迷信某些個別評測,單純的回圈測試什么的,比如JNode的官方網站上有Java寫的JVM的性能和SUN的JVM

  進行性能比較的結果,JNode中用Java寫的JVM竟然能比SUN公司用C++寫的JVM還快!編譯器完全可以作針對性優化影響測試結果,毫無意義的東西。而且,評測結果不會具備多少實際意義,真正的應用系統的效率是80%取決于整體的設計架構,而非你使用哪種語言。所以討論匯編、C++、Java誰更快這個問題的人恐怕更多是為了自己的面子考慮,雖然Java當前如日中天,但其總是針對C++的批判性態度卻再明顯不過,所以Bruce才會有“C++不垃圾,只是Java很傲慢”之說。

  C++和Java根本的區別是什么?我認為毫無疑問是內存分配。編程思想和設計模式是活的東西,和語言沒有直接關系。Java沒有指針,C++寫程序也可以只用引用。JVM是Java在

  內存管理上真正有別于C++的地方。JVM的好處是顯而易見的,跨平臺、更智能的內存管理,但能解決所有問題嗎,答案是否定的。

  Java沒有內存泄露嗎?當然不是,我認為java的內存泄露往往比C++更加難以排查,因為JVM的緣故,程序員沒法直接對內存進行操控,隱患往往藏的更深。我曾經花了大量時間研究JVM的內存機制,雖然也有了不少心得,但直到現在仍然處于迷惑期。循環引用,緩存機制不合理,Spring等常態Bean的屬性重復加載都是可能吃內存的元兇。

  對于一個單一的,低用戶低并發的系統,使用Java是很舒服的,程序員不用去考慮太多事情,照著業務邏輯做設計編代碼就行,不用管內存分配,不用管并發和互斥(其實還是要管的),就算萬一有內存泄露的隱患,大不了每天重啟JVM一下就能解決了。但對于一個可能在多個應用環境中部署的軟件產品而言,內存泄露這種問題卻絕不能放過。我曾經遇到過在一個環境中運行非常良好,但在另一個環境中卻天天出問題的情況,即使每天重啟JVM也無濟于事。當時懷疑過很多方面,網絡、數據庫、容器等等。那時還不是很有概念,現在想起來還是后來好好看程序,優化了不少代碼,解決了幾個內存泄露,這樣才最終解決了不穩定的問題。舉例來講,在應用環境A中,服務器性能較好,JVM有2G內存,某個應用存在內存泄露的隱患,每次大約造成2M的內存消耗,這樣1000次左右就沒有內存可用了,就會造成JVM性能大幅降低。但在應用環境B中,服務器就沒那么好的性能了,JVM僅有256M,那么100多次操作就足以導致問題出現。而且,每個應用環境的應用使用率是不一樣的,在A中如果每天僅出現10次隱患應用操作,2-3個月都不會暴露問題,而且即使使用內存分析工具,開始階段也很難查出有無問題,但在B中,如果每天有100次隱患應用操作,只需一天問題就出現了。但實際應用過程中,應用的使用率往往很難精確統計的到,也無法預判,這也是造成問題排查困難的關鍵因素之一。應用環境的不確定性不單體現在地域上,也體現在時間上,不同時間的相同應用環境也不盡相同。挑選一個應用環境,常態性監測JVM的內存情況是避免這類問題發生的好辦法。

  結論就是,對于中高端的產品化,多用戶,高并發應用,Java和C++一樣,不考慮內存是不可能的,畢竟語言最終操縱的還是計算機。

  那Java的優勢在哪里?我認為其在中低端應用上的門檻更低。對大多數小型信息管理類系統而言,并不需要很嚴謹并且考慮周到的設計和編碼,學習java可以讓一個新手很快

  上路,而C++卻沒有這種優勢,動不動就越界是新手常犯的錯誤。在一個通常的軟件團隊里面,水平一定會有高低,而且也不是每個人都能通過學習進入深層次,這是C++難以解決的問題,Java在由于規范性方面的優勢更加適合新手使用。

  C++就像手動檔汽車,Java更像自動檔,盡管越來越多人愿意開自動檔,可是要想真正跑得快,賽車還得手動擋的。

  問題出現總會讓人頭疼,追根溯源常常也會非常艱苦和漫長,但只要還有辦法,就不能放棄,規避問題可以解決陣痛,但永遠無法治根。

  2、關于云計算想到的

  毫無疑問云計算的概念被擴大化了,云服務、云存貯,SAAS、IAAS、PAAS,理論和概念早已滿天飛。但當我仔細讀來,卻發現大多還是新瓶裝舊酒。雖然說還是有不少實質性內容,但與真正的分布式計算概念還是想去甚遠。在網絡越來越發達的時代背景下,存貯、軟件、外設甚至內存都網絡化了,唯一缺少的就是CPU,依靠網絡使大量CPU協同工作真的是個很誘人的想法,但也是困難而遙遠的事情。也有人認為Cloud Computing是個過度炒作的東西,我覺得有一定道理,如果要我選擇,我也會希望把自己的東西放到自己的電腦上,我會更希望在任何地方使用便攜設備隨時操縱我的電腦,卻絕對不是放到一個看不見摸不到的“云端”上頭,天天被“云端”盤剝和控制。因此,如果云端僅僅是服務或存貯的集中式管理,它是不值得如此進行炒作的。

  其實我覺得我不是一個重組概念進行炒作的反對者,炒作對于技術和社會進步是有一定作用的,但水可載舟、亦可覆舟,將一些本無關系的東西牽強附會的聯系在一起進行炒作,只會攪亂理論和學術體系,而理論體系的混亂一定會導致交流上的障礙-----雖然交流變得更多(必然變得更多)更方便了,可是交流的障礙卻大幅度增加了,同樣的一個名詞可以被一百個人給出一百個解釋,本來一句話可以說清楚的事情,現在變成了幾十句才能說明白。

  藥廠可以把10幾塊錢的藥重新包裝賣200-300塊,利潤當然是驚人的,可是賺到了錢的老板們卻天天打算著轉移資產到國外,認為國內沒有可持續的發展。這樣的人到底是高素質還是低素質呢?

  我上大學的時候曾經在醫院實習,見過一個食物中毒的病人家屬連夜趕了幾十里山路,把一堆借來的硬幣交給醫院做透析;后來工作了,搞圖書館的項目也知道很多地方的人連100塊錢的借書證押金都捉襟見肘。那些天天生活在優越環境下的概念重組專家們會為這些人群考慮多少呢?“云端”的概念炒作顯現了他們的壟斷思想,現在中國的貧富差距基本還是在財產方面,信息方面基本還是對等的,這也是一個農村的孩子經過十幾年苦干可以成為大企業家的前提所在。可是“云端”一來,你的一舉一動都在我掌控和監視之下,沒錯,你是方便了,也少花錢了,可是卻失去了信息方面的平等地位,于是,屁民將永遠是屁民,永遠沒有咸魚翻身的機會。

  3、關于信息爆炸

  10年來我也做了很多技術方面的工作了,最初幾年看到一項新技術、新概念,腎上腺激素濃度就會大幅度增加,要是不用一下晚上恐怕覺都睡不著。可是后來慢慢地就變得理性多了,技術的選擇一定要根據需求來,絕不能為用技術而用技術。很多的新技術、新概念,看幾眼就差不多知道來源,也知道優點和缺點了。以前總以為環境得適應程序,后來明白了程序得適應環境。

  大型的應用系統,越簡單越好,如果做不到簡單,寧可拆分為多個系統單獨設計。否則,當我面對一大堆連自己都難以看懂的概念和代碼,真會有抓狂的感覺。

  CSDN是不錯的技術社區了,但是依然缺乏體系組織和管理。論壇、知識庫,Q&A,這些東西的模式差不多,雖然方便了信息交流,但缺乏信息的組織和管理。比如我希望做一個信息系統,那應該選擇什么樣的技術?這個問題目前只能靠自己去摸索,慢慢體會,找到真正適合自己的技術方案。Wiki可能是更好的平臺,但普及度不夠。

  其實每一個Questioner或者Answerer都在極力尋求相互之間的共同語言,共同語言和語義的理論體系形成之后,交流才能順暢。翻翻CSDN的帖子,不乏問東答西的案例。一個交流平臺如果能形成一套語言和思維方式,那就是非常成功的了。而這也使得技術選型的模型成為可能,當你想采用一套新技術時,Google一下,各說各話,對的有,錯的也有,搜索引擎為何判斷不出已定論的東西誰對誰錯呢,就是源于語義的復雜性。信息的膨脹速度遠沒有我們想象中那樣快,其中相當一部分是語言語義產生的泡沫,擠掉這些泡沫呢?信息真的有統計數據顯示的那么“海量”嗎?

  統計數據經常是面子工程強有力的支撐者,可扔掉這些浮華,細細究一下統計數據是怎么做出來的?常常就會讓人哭笑不得,而且大多是7分真,3分假,或偷換概念,總之目的就是把一棵小草說成一座森林。信息是有欺騙性的,商業運作會大量運用這種特性,換來的除了腎上腺素之外還有人和人之間不信任的感覺。

  信息爆炸的時代,交流的作用變成空前重要,但在交流越來越方便的同時,效率也越來越低了。也許幾十年后,人類會不堪信息的重負,那時信息規范化和有序化才會真正站上歷史的舞臺。
本文地址:http://m.qingdxww.cn/thread-63021-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
zzm天龍 發表于 2011-4-20 19:36:48
zzz2603 發表于 2011-4-22 08:36:13
學習了
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 强奷漂亮女老板在线播放| 日本3级网站| 我被黑人彻底征服的全文| 喂奶milkboobspuppy| 液液酱yye一yye的福利免费| 亚洲一区在线免费观看| 97久久精品视频| 成人网站国产在线视频内射视频| 国产精品国产三级国产AV麻豆| 国产亚洲精品久久孕妇呦呦你懂| 久久精品视频uu| 小向美奈子厨房magnet| 亚洲欧美久久精品1区2区| 香蕉99| 欧美视频福利| 天天干天天舔天天操| 亚洲黄页网站| 亚瑟成人影院视频在线观看| 综合站| 国产传媒精品1区2区3区| 欧美黑人巨大性极品hd欧| 尤物99久久久合集一区区| 亚洲激情在线视频| 一级欧美视频| 天美传媒精品一区| 视频在线观看40分钟免费| 伊人久久五月色综合网| va亚洲va天堂va视频在线| 国产亚洲综合视频| 无码中文字幕av免费放| 在线欧美免费人成视频| 亚洲精品美女久久久aaa| 亚洲国产日韩欧美在线a乱码| 色天使网| 视频在线一区| 在线播放免费视频| black大战chinese周晓琳| 国产AV综合手机在线观看| 久久久97人妻无码精品蜜桃| 亚洲精品久久久久中文字幕二区| 亚洲视频在线观看一区|