『壹』 男生最吃香的十大專業 男生最吃香的十大專業是什麼
1、車輛工程
車輛工程專業涉及的技術面非常廣。除了支持汽車成型的材料技術、支持汽車動力系統的機械技術外,機車車輛、輕軌車輛、軍用車輛及工程車輛等陸上移動機械幾乎無所不包。
2、電子信息工程
說起來,這也是一個老專業了,用老百姓的話說,就是以前的「無線電」。現在,一般的理工院校都開設了這個專業,並不惜財力重點扶持,名字也都與「電子」「信息」掛上了鉤,可謂「老樹開新花」。信息產業是一項新興的高科技產業,有著巨大的潛力和廣闊的發展前景。隨著工業經濟向知識經濟的轉化,信息產業必然會成為世界第一大產業,而電子信息工程就是信息產業的重要基礎和支柱之一。
3、軟體工程
只要使用電腦,就得同各種各樣的軟體打交道。簡單地說,軟體工程的主要任務就是開發升級新軟體、維護原有軟體。在現代社會中,軟體應用於多個方面。典型的軟體比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,資料庫,游戲等。同時,各個行業幾乎都有計算機軟體的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
4、機電一體化技術
專業介紹:「機電一體化技術」的專業人才是21世紀初我國急需的八大緊缺人才之一,就業前景光明。本專業教學內容包含了機械、電子、計算機、感測、信息處理等應用技術的最新成果,全面培養學生的職業技能,使學生具備系統調試、編程、維護維修與設備管理的能力,成為該領域的高級技術應用型人才。
5、數學與應用數學
專業介紹:本專業特點是理工結合,培養具有寬厚的數學基礎,熟練的計算機應用和開發技能,較強的外語能力,並掌握一定的應用科學知識,能運用數學的理論和方法解決實際問題的高級科技人才。
6、環境藝術設計
涉及面廣泛各個企事業單位與平面以及三維製作相關的工作,可從事數字藝術設計、環境藝術設計、新聞出版行業、室內設計、會展設計行業、建築效果圖設計、繪圖員、平面設計師、櫥櫃設計師、傢具設計師、施工圖設計師、效果圖表現、預算員、工裝設計師、設計師助理、施工監理等行業。
7、投資理財專業
對於一名文科生來說,作為一個投資理財行業的分析師越來越受到金融行業的青睞,很多文科男生在畢業以後選擇從事投資分析師這一職業。尤其是在北上廣等大城市,一個好的金融理財分析師可以輕松月入過萬。很多做的好的男生更是成為了企業投資融資服務的專業性人才。
8、土木工程
土木工程是建造各類工程設施的科學技術的統稱,在國家建設中屬於基礎建設行業。應該說,我們國家的基礎設施還處在發展階段,我們和西方發達國家相比有二三十年的差距。目前,咱們國家基礎建設的主戰場是高速鐵路、高速公路以及電站建設,水利建設等,這些行業每年吸收大量的土木專業畢業生。
9、飛行器設計與工程
飛行器設計與工程培養具有良好數學、力學基礎,具有飛行器工程基本理論和工程應用等方面知識,能從事飛行器總體設計、機構設計、飛機外形設計、飛機性能計算與分析、結構受力與分析、飛機故障診斷及維修、軟體開發等,並能從事通用機械設計及製造的高級工程技術人員和研究人員。
10、地質學類
熱愛地理的同學一定不能錯過這類專業。很久很久以前,北美洲、南美洲和非洲是連在一起的;2000萬年前,珠穆朗瑪峰還在水底。別人不知道的地球秘密,地質學的同學卻都如數家珍。
地質學是一門偏理的學科,它是綜合運用一切科學手段研究地球歷史變遷的科學。地質學畢業生就業崗位包括:地質工程師、采礦工程師、土建工程師、岩土工程師、地質技術員、測量工程師等。
『貳』 上大學帶台式電腦去上大學帶什麼樣的電腦好還是筆記本電腦
大學期間電腦選擇很重要的一個參考依據就是你所讀的專業,如果與設計相關的專業的話,電腦配置肯定是要在線的而不是一種夠用的性能。
那麼我主推的是選用台式機而非筆記本。
大學期間該選台式機還是筆記本?不妨來看看這個
首先,現在市面上面很多打著設計旗號的輕薄筆記本,實際性能是跟不上的,僅僅依靠一個核顯想要完成很多設計工作,無疑是挺困難。而筆記本的起步價普遍在3000元以上。
同樣3000元的價格,組裝一台獨顯台式機,可以輕松完成各種設計工作,同時,還能選配一個高色域高解析度顯示屏,對於設計專業的朋友來說,無疑是如虎添翼。
另一方面,很多新入學的朋友會說,上課會不會要帶筆記本啊?其實並不用,很多專業設計課程都會在學校機房內進行,極少數的課程才會用到筆記本上課教學。既然不會經常帶電腦出寢室,同價位選用高性能台式機豈不美哉。
大學期間該選台式機還是筆記本?不妨來看看這個
而學習文化,藝術,管理或者計算機專業的朋友,專業性質決定了你們用office或者編譯器會比較多,這類軟體對電腦性能要求不高,但是這些專業又決定了你們可能會隨時隨地使用電腦進行學習辦公之類的,所以便攜性的筆記本是首選。
根據個人使用習慣選擇
如果你上大學,想要兼顧娛樂和學習,老老實實選擇台式機,至於原因嘛,過來人的經驗告訴你,筆記本只適合專注於學習的朋友,如果想要筆記本能玩還能學,體驗感上來說,玩兒得不爽,學得也不爽。
而對於重度游戲玩家,很多朋友可能會問,游戲本行不行啊,看著配置挺高的呀。但是對於在校園寢室這種環境來說,用筆記本打游戲,就算游戲本配置再高,再奢華,15.6寸或者17寸的屏幕,帶不來多好的游戲體驗,還不如去網吧,還是那句話,術業有專攻,玩兒游戲,就老實的選擇台式機,一年去網吧的錢節省下來,都可以打造一個「電競寢室」了。
大學期間該選台式機還是筆記本?不妨來看看這個
如果是對游戲興致不大,主攻學習和輕度娛樂的朋友,非常推薦選擇輕薄筆記本,不論是看劇追番或者輕度辦公學習啥的,3000多元的輕薄本能夠輕松滿足需求,性能上的拘束,完完全全斷掉你的游戲念頭,專注學四年,畢業就是一個優秀人才了。
根據經濟情況選擇
預算不足的選擇:如果是預算不夠多的朋友,1000元或者2000元預算內想弄台電腦,那隻能考慮「撿垃圾」的玩法了。1000元帶顯示器的話,也能裝台能玩英雄聯盟的電腦了,至於各種專業學習,也不在話下(H61平台+GTX750顯卡+24寸雜牌ips顯示器)。
大學期間該選台式機還是筆記本?不妨來看看這個
而2000元預算的性能吃下大多數游戲和各種三維建模設計軟體不成問題(X58平台+二手RX580顯卡+AOC144顯示器)。
這種「撿垃圾」的電腦優勢在於,價格便宜,性能在線,用完4年還能原價賣,對於預算不多的朋友來說是非常好的選擇。不推薦選擇二手筆記本,因為2000元價位內的二手筆記本,非常卡頓不說,很容易出故障,用完四年了也不好出售,只能當垃圾處理(除非你有筆記本的便攜性剛需)。
預算上6000的選擇:在校園內,如果購機預算上到了6000,我比較推薦的一種購機選擇是——通吃。
花2000多元裝一台專門用來娛樂或者學習設計的台式機,4000元預算購置一台超輕薄的筆記本,專門用來辦公或者出行攜帶。
『叄』 歡迎大神指點配置主機,做編譯伺服器和游戲機用,預算6000內
主板華碩品質、內存金士頓假貨略多,不過兼容性比較好、自己決定。內存如果預算足夠直接16G,因為游戲現在越來越大,使命召喚10最低要求6G,誰知道三年後游戲變成什麼樣。日後補充也可以。顯卡不能低於760就選擇了770 散熱沒的說,性價比也不錯。如果有錢入華碩也可以。電源大牌品質,不超頻我就選擇了550 還行,如果感覺不夠用可以再加大
『肆』 伺服器百問百答
用戶總希望有一種簡單、高效的度量標准,來量化評價伺服器系統,以便作為選型的依據。但實際上,伺服器的系統性能很難用一兩種指標來衡量。包括TPC、SPEC、SAP SD、Linpack和HPCC在內的眾多伺服器評測體系,從處理器性能、伺服器系統性能、商業應用性能直到高性能計算機的性能,都給出了一個量化的評價指標。在如此多的標准中,用戶該如何選擇最適合自身應用環境的評價體系呢?這里,我們選擇了應用面較廣泛的TPC和SPEC,作一個深入介紹。
■ 走出誤區
深入TPC-C指標
TPC體系是影響最大的評測基準之一,尤其近兩年,國內媒體對TPC指標的報道可謂海量。但有多少用戶真正了解其中的含義呢?本文以TPC-C為例,讓用戶深入了解這項基準測試。
tpmC值在國內外被廣泛用於衡量伺服器系統的事務處理能力。但究竟什麼是tpmC值呢?筆者曾向一些用戶、專業媒體記者乃至某些國外大公司的技術人員問過這個問題,但回答的精確度與tpmC值的流行程度差異甚遠。不少人將之誤寫為TPMC,甚至與TPC組織混為一談。
TPC(Transactionprocessing Performance Council,事務處理性能委員會)是由數十家會員公司創建的非盈利組織,總部設在美國。TPC的成員主要是計算機軟硬體廠家,而非計算機用戶,其功能是制定商務應用基準程序的標准規范、性能和價格度量,並管理測試結果的發布。
TPC不給出基準程序的代碼,而只給出基準程序的標准規范。任何廠家或其他測試者都可以根據規范,最優地構造出自己的測試系統(測試平台和測試程序)。為保證測試結果的完整性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(Full Disclosure Report),包括被測系統的詳細配置、分類價格和包含5年維護費用在內的總價格。該報告必須由TPC授權的審核員核實(TPC本身並不做審計)。TPC在全球只有不到10名審核員,全部在美國。
TPC推出過11套基準程序,分別是正在使用的TPC-App、TPC-H、TPC-C、TPC-W,過時的TPC-A、TPC-B、TPC-D和TPC-R,以及因為不被業界接受而放棄的TPC-S(Server專門測試基準程序)、TPC-E(大型企業信息服務測試基準程序)和TPC-Client/Server。而目前最為「流行」的TPC-C是在線事務處理(OLTP)的基準程序,於1992年7月完成,後被業界逐漸接受。
TPC-C使用三種性能和價格度量,其中性能由tpmC(transactions per minute,tpm)衡量,C指TPC中的C基準程序。它的定義是每分鍾內系統處理的新訂單個數。TPC-C還經常以系統性能價格比的方式體現,單位是$/tpmC,即以系統的總價格(單位是美元)/tpmC數值得出。
解讀tpmC
從TPC-C的定義不難知道,這套基準程序是用來衡量整個IT系統的性能,而不是評價伺服器或某種硬體系統的標准,而且tpmC數值的高低直接受到各個環節的影響,右表大概可以說明系統設置對tpmC測試的影響。此處的「IT系統」包括伺服器、外設(如硬碟或RAID)、伺服器端操作系統、資料庫軟體、客戶端及其操作系統、資料庫軟體和網路連接等。因此,如何解讀tpmC數值會因不同的采購需求有非常大的差異。以伺服器為例。在很多廠家的TPC測試系統中,伺服器的價格只是系統總價格的25%或更小,而硬碟的價格有可能佔到總價格的30%以上,因為TPC-C要求被測系統必須保存180天的事務記錄(這一趨勢從一些最新的TPC-C測試結果來看,會愈演愈烈)。如果同樣的伺服器被用到用戶的環境中,廠家報的tpmC值就意義不大,因為用戶的實際系統與廠家原來用於TPC測試的系統大不一樣。當同樣的主機用在不同的系統中時,tpmC值可能有相當大的變化,現在許多用戶還沒有意識到這一點。
尤其需要伺服器采購用戶注意的是,tpmC指標更多的是衡量從Client到終端網路的性能區域(如左圖所示),而不是通常誤認為的伺服器到企業端網路的性能。由此可見,如果用戶是建立一套全新的業務系統,那麼無妨多借鑒tpmC的性能指標,如果只是采購某種或某些硬體設備,則需要參考更多的指標。
對於tpmC數值著迷的用戶而言,一個現實問題是,實現高tpmC指標的代價是否能夠承受,畢竟TPC-C都是很復雜的基準程序,做一個嚴格的測試非常消耗資源,廠商通常不會給TPC報告出全部花費的金錢和時間。
實際上,正因為tpmC(其他評測指標也大都一樣)受系統優化影響較大,業界對於是否應該在測試中進行優化向來爭議頗多。在1993年, 當時三大IT公司的專家就對OLTP性能測試的優化提出過反對意見——DEC的 Jim Gray (現為TPC-C委員會專家) 與Walt Kohler 、天騰公司(TANDEN)的Charles Levine 和IBM的Steve Kiss共同發表了對OLTP性能測試指標是否應該進行人為優化的看法:
「一個好的性能測試指標是不會依賴於特殊情況下的優化。最理想的情況應該是:一個測試指標在測試過程中所表現出的性質和能力, 以及對測試所做的優化能夠確實提供對現實世界中用戶實際應用的性能改進。然而,事與願違,某些廠商迫於標准測試指標所帶來的巨大市場壓力,他們花費巨大的精力在如何改進測試結果的同時還能降低價格比率,而全然不顧所做的這一切優化究竟是否給用戶帶來了真實的利益。」
--------------------------------------------------------------------------------
2
--------------------------------------------------------------------------------
相信實踐:最佳檢驗方式
眾所周知,成熟的企業從不相信任何「國際通用標准」,而是花相當精力,比如預算的5%,使用自己的應用來測試系統,從而決定選型。「國際通用標准」的度量可以作為參考值,而不應作為必要條件。尤其是一定要弄清這些流行度量有什麼含義,是在什麼樣的系統環境中測得的,以及基準程序是否符合企業真實的業務流程和運作模式。
下面就是三種不同的檢測模式。
在真實環境中運行實際應用
這是最理想的方式。要求製造商或系統集成商配合將系統(含平台、軟體和操作流程)在一個 實際用戶點真正試運行一段時間。這樣,用戶不僅能看到實際性能,也能觀察到系統是否穩定可靠、使用是否方便、服務是否周到、配置是否足夠、全部價格是否合理。
使用用戶定義的基準程序
如果第一種方式不可行,用戶可以定義一組含有自己實際應用環境特徵的應用基準程序。業內有兩個典型的例子:其一是,近年來由於3層應用模型的風靡,SAP SD基準獲得了眾多廠商和用戶的認可,於是在很多地方都能看見對SAP測試數據的引用;其二是,國家稅務總局曾經開發自己的基準程序,以幫助稅務系統進行伺服器選型。這種方式在中國尤其重要,因為中國的信息系統有其特殊性。
使用通用基準程序
如果前兩種均難實行,那麼使用如TPC-C之類的通用基準程序未嘗不可。但用戶應當尤其注意——實際應用是否與基準程序相符?絕大多數基準程序都是在美國制訂的,而中國的企事業單位與美國的運作方式常常不一樣,在使用TPC-C時,用戶應該清楚地知道:自己的應用是否符合批發商模式?事務請求是否與測試模式近似?對響應時間的要求是否那麼高?如果都不是,則tpmC值的參考價值就不太大了。那麼不妨看看其他的更合適的測試指標,例如SPECweb2005等。 ■ 突出重點
SPEC關注CPU和Web
與TPC體系注重在線處理能力和資料庫查詢能力不同,SPEC體系中最廣為人知的兩個子項,是衡量CPU、內存性能的CPU2000和Web伺服器性能的web2005。
除了TPC家族,SPEC家族也是廣為人知的一大體系。SPEC指標體系由Standard Performance Evaluation Corp.制定,目前主要包括針對CPU性能的SPEC CPU2000(已有CPU2006,但尚無數據)、針對Web伺服器的SPECweb2005、針對高性能計算的SPEC HPC2002與SPEC MPI2006、針對java應用的jAppServer2004與JBB2005以及對圖形系統、網路和郵件伺服器的測試指標。
其中CPU2000和web2005兩類是被引用最廣泛的指標。
CPU2000 注重CPU
SPEC CPU2000 是一組針對 CPU 和內存的測試,它主要測試的對象是 CPU、內存,不測試硬碟、I/O 效率和網路等部分。SPEC CPU2000 由許多源代碼程序組成,這些程序都從實際的應用(主要來自配置1~4顆CPU的工作站應用)中取出來的,例如 164.gzip 就是gzip 壓縮程序。這些程序區分成「整數」和「浮點數」兩組。SPECint2000 就是「整數」部分,而 SPECfp2000 則是「浮點數」部分。「整數」部分有 12 個程序,使用 C 或 C++ 語言,它們不使用CPU的浮點單元;而「浮點數」部分有 14 個程序,使用 FORTRAN 77/90 和C語言,這些程序的主要運算是浮點數的。
SPECint2000 和 SPECfp2000 的結果,以執行時間為准。每個程序的執行時間和一個參考平台(Sun Ultra5/10 300MHz)相比,計算出其倍數。如果執行時間和參考平台相同,結果就是100。如果只花了一半時間完成,結果就是200。「整數」的12 個程序的結果,取其平均值,得到的就是SPECint2000 的測試結果。「浮點數」的 14 個程序也是一樣。
由於SPEC CPU2000的測試程序都是源代碼形式(以保證跨平台測試),所以編譯器效率就顯得十分重要。SPEC CPU2000規定,測試結果有「Base」和「Peak」兩種結果。「Base」測試中,對於編譯時的最佳優化參數有所規定(所有的程序都需使用同樣的參數,且參數數目不能超過四個),而「Peak」測試則比較寬松。
另外,因為 SPEC CPU2000的程序都是針對單CPU的系統設計,因此,在多CPU系統上,如果要測試多CPU系統的效率,則是採取同時執行多個相同程序的方法,這個結果就是「Rate」。因此,同樣有 SPECint_rate 和 SPECfp_rate 的測試結果。需要說明的是,「Rate」測試同時執行多個相同的程序,但程序之間並不會有關聯,所以這是一種理論計算能力測試,並不代表實際並行計算能力。
Web服務 參考Web2005
SPEC web2005測試的原理是,通過多台客戶機向伺服器發出http Get請求,請求調用Web伺服器上的網頁文件,這些文件從數千位元組到數兆位元組不等。在相同的時間里,伺服器回答的請求越多,就表明伺服器對客戶端的處理能力越強,系統的Web性能就越好。
目前SPECweb2005測試榜上,性能最高的是2005年11月發布的Sun Fire T2000系統,此系統的基本配置為1顆8核心的UltraSPARC T1(1.2GHz)/32GB內存/3×73GB萬轉SAS硬碟/Solaris 10/UFS文件系統/Java2 Runtime Environment,能夠同時響應14001個http請求。這一性能比排行第二的系統高出77%。如果用戶知道兩套系統的價格接近,那麼就可輕易得知,采購Fire T2000作為Web伺服器,性價比將比采購第二名的系統高出許多。
不過SPECweb2005的缺陷也正在於此,它不像TPC-C那樣要求廠商提供測試環境的總成本,對於實際采購的指導意義有所削弱。
『伍』 求編譯android DIY裝機單,一萬五預算
花不了這么多錢的,處理器選 酷睿i7-4790k ¥2239
主板 技嘉(GIGABYTE)X99-UD4主板 ¥2599
編譯代碼不是很吃性能
硬碟買一塊 浦科特m6s 128G的大概 ¥460
在加一塊7200轉1T 的機械硬碟大概在¥350
然後顯卡隨便買一塊N卡 預算¥500
顯示器 選一個 三星(SAMSUNG) S24D590PL 23.6英寸PLS廣視角超窄邊框LED背光液晶顯示器 ¥1300
其他的機箱 音響 什麼的自己配一下哈 望採納
『陸』 了解什麼叫做jit compiling,與傳統的編譯技術有何不同
Java 應用程序的性能經常成為開發社區中的討論熱點。因為該語言的設計初衷是使用解釋的方式支持應用程序的可移植性目標,早期
Java 運行時所提供的性能級別遠低於 C 和
C++
之類的編譯語言。盡管這些語言可以提供更高的性能,但是生成的代碼只能在有限的幾種系統上執行。在過去的十年中,Java
運行時供應商開發了一些復雜的動態編譯器,通常稱作即時(Just-in-time,JIT)編譯器。程序運行時,JIT
編譯器選擇將最頻繁執行的方法編譯成本地代碼。運行時才進行本地代碼編譯而不是在程序運行前進行編譯(用 C 或
C++ 編寫的程序正好屬於後一情形),保證了可移植性的需求。有些 JIT 編譯器甚至不使用解釋程序就能編譯所有的代碼,但是這些編譯器仍然通過在程序執行時進行一些操作來保持 Java 應用程序的可移植性。
由於動態編譯技術的多項改進,在很多應用程序中,現代的 JIT 編譯器可以產生與 C 或 C++
靜態編譯相當的應用程序性能。但是,仍然有很多軟體開發人員認為 —— 基於經驗或者傳聞 ——
動態編譯可能嚴重干擾程序操作,因為編譯器必須與應用程序共享 CPU。一些開發人員強烈呼籲對 Java
代碼進行靜態編譯,並且堅信那樣可以解決性能問題。對於某些應用程序和執行環境而言,這種觀點是正確的,靜態編譯可以極大地提高 Java
性能,或者說它是惟一的實用選擇。但是,靜態地編譯 Java 應用程序在獲得高性能的同時也帶來了很多復雜性。一般的
Java 開發人員可能並沒有充分地感受到 JIT 動態編譯器的優點。
本文考察了 Java 語言靜態編譯和動態編譯所涉及的一些問題,重點介紹了實時 (RT) 系統。簡要描述了 Java
語言解釋程序的操作原理並說明了現代 JIT 編譯器執行本地代碼編譯的優缺點。介紹了 IBM 在 WebSphere Real Time 中發布的
AOT 編譯技術和它的一些優缺點。然後比較了這兩種編譯策略並指出了幾種比較適合使用 AOT
編譯的應用程序領域和執行環境。要點在於這兩種編譯技術並不互斥:即使在使用這兩種技術最為有效的各種應用程序中,它們也分別存在一些影響應用程序的優缺
點。
執行 Java 程序
Java 程序最初是通過 Java SDK 的 javac程序編譯成本地的與平台無關的格式(類文件)。可將此格式看作 Java
平台,因為它定義了執行 Java 程序所需的所有信息。Java 程序執行引擎,也稱作 Java 運行時環境(JRE),包含了為特定的本地平台實現
Java 平台的虛擬機。例如,基於 linux 的 Intel x86 平台、Sun Solaris 平台和 AIX 操作系統上運行的 IBM
System p 平台,每個平台都擁有一個 JRE。這些 JRE 實現實現了所有的本地支持,從而可以正確執行為
Java 平台編寫的程序。
事實上,操作數堆棧的大小有實際限制,但是編程人員極少編寫超出該限制的方法。JVM 提供了安全性檢查,對那些創建出此類方法的編程人員進行通知。
Java 平台程序表示的一個重要部分是位元組碼序列,它描述了 Java
類中每個方法所執行的操作。位元組碼使用一個理論上無限大的操作數堆棧來描述計算。這個基於堆棧的程序表示提供了平台無關性,因為它不依賴任何特定本地平台
的 CPU 中可用寄存器的數目。可在操作數堆棧上執行的操作的定義都獨立於所有本地處理器的指令集。Java
虛擬機(JVM)規范定義了這些位元組碼的執行(參見 參考資料)。執行 Java 程序時,用於任何特定本地平台的任何 JRE 都必須遵守 JVM
規范中列出的規則。
因為基於堆棧的本地平台很少(Intel X87 浮點數協處理器是一個明顯的例外),所以大多數本地平台不能直接執行 Java 位元組碼。為了解決這個問題,早期的 JRE 通過解釋位元組碼來執行 Java 程序。即 JVM 在一個循環中重復操作:
◆獲取待執行的下一個位元組碼;
◆解碼;
◆從操作數堆棧獲取所需的操作數;
◆按照 JVM 規范執行操作;
◆將結果寫回堆棧。
這種方法的優點是其簡單性:JRE 開發人員只需編寫代碼來處理每種位元組碼即可。並且因為用於描述操作的位元組碼少於 255 個,所以實現的成本比較低。當然,缺點是性能:這是一個早期造成很多人對 Java 平台不滿的問題,盡管擁有很多其他優點。
解決與 C 或 C++ 之類的語言之間的性能差距意味著,使用不會犧牲可移植性的方式開發用於 Java 平台的本地代碼編譯。
編譯 Java 代碼
盡管傳聞中 Java 編程的 「一次編寫,隨處運行」
的口號可能並非在所有情況下都嚴格成立,但是對於大量的應用程序來說情況確實如此。另一方面,本地編譯本質上是特定於平台的。那麼 Java
平台如何在不犧牲平台無關性的情況下實現本地編譯的性能?答案就是使用 JIT 編譯器進行動態編譯,這種方法已經使用了十年(參見圖 1):
圖 1. JIT 編譯器
使用 JIT 編譯器時,Java
程序按每次編譯一個方法的形式進行編譯,因為它們在本地處理器指令中執行以獲得更高的性能。此過程將生成方法的一個內部表示,該表示與位元組碼不同但是其級
別要高於目標處理器的本地指令。(IBM JIT
編譯器使用一個表達式樹序列表示方法的操作。)編譯器執行一系列優化以提高質量和效率,最後執行一個代碼生成步驟將優化後的內部表示轉換成目標處理器的本
地指令。生成的代碼依賴運行時環境來執行一些活動,比如確保類型轉換的合法性或者對不能在代碼中直接執行的某些類型的對象進行分配。JIT
編譯器操作的編譯線程與應用程序線程是分開的,因此應用程序不需要等待編譯的執行。
圖 1 中還描述了用於觀察執行程序行為的分析框架,通過周期性地對線程取樣找出頻繁執行的方法。該框架還為專門進行分析的方法提供了工具,用來存儲程序的此次執行中可能不會改變的動態值。
因為這個 JIT 編譯過程在程序執行時發生,所以能夠保持平台無關性:發布的仍然是中立的 Java 平台代碼。C 和 C++ 之類的語言缺乏這種優點,因為它們在程序執行前進行本地編譯;發布給(本地平台)執行環境的是本地代碼。
挑戰
盡管通過 JIT 編譯保持了平台無關性,但是付出了一定代價。因為在程序執行時進行編譯,所以編譯代碼的時間將計入程序的執行時間。任何編寫過大型 C 或 C++ 程序的人都知道,編譯過程往往較慢。
為了克服這個缺點,現代的 JIT
編譯器使用了下面兩種方法的任意一種(某些情況下同時使用了這兩種方法)。第一種方法是:編譯所有的代碼,但是不執行任何耗時多的分析和轉換,因此可以快
速生成代碼。由於生成代碼的速度很快,因此盡管可以明顯觀察到編譯帶來的開銷,但是這很容易就被反復執行本地代碼所帶來的性能改善所掩蓋。第二種方法是:
將編譯資源只分配給少量的頻繁執行的方法(通常稱作熱方法)。低編譯開銷更容易被反復執行熱代碼帶來的性能優勢掩蓋。很多應用程序只執行少量的熱方法,因
此這種方法有效地實現了編譯性能成本的最小化。
動態編譯器的一個主要的復雜性在於權衡了解編譯代碼的預期獲益使方法的執行對整個程序的性能起多大作用。一個極端的例子是,程序執行後,您非常清楚哪些方
法對於這個特定的執行的性能貢獻最大,但是編譯這些方法毫無用處,因為程序已經完成。而在另一個極端,程序執行前無法得知哪些方法重要,但是每種方法的潛
在受益都最大化了。大多數動態編譯器的操作介於這兩個極端之間,方法是權衡了解方法預期獲益的重要程度。
Java 語言需要動態載入類這一事實對 Java
編譯器的設計有著重要的影響。如果待編譯代碼引用的其他類還沒有載入怎麼辦?比如一個方法需要讀取某個尚未載入的類的靜態欄位值。Java
語言要求第一次執行類引用時載入這個類並將其解析到當前的 JVM
中。直到第一次執行時才解析引用,這意味著沒有地址可供從中載入該靜態欄位。編譯器如何處理這種可能性?編譯器生成一些代碼,用於在沒有載入類時載入並解
析類。類一旦被解析,就會以一種線程安全的方式修改原始代碼位置以便直接訪問靜態欄位的地址,因為此時已獲知該地址。
IBM JIT
編譯器中進行了大量的努力以便使用安全而有效率的代碼補丁技術,因此在解析類之後,執行的本地代碼只載入欄位的值,就像編譯時已經解析了欄位一樣。另外一
種方法是生成一些代碼,用於在查明欄位的位置以前一直檢查是否已經解析欄位,然後載入該值。對於那些由未解析變成已解析並被頻繁訪問的欄位來說,這種簡單
的過程可能帶來嚴重的性能問題。
動態編譯的優點
動態地編譯 Java 程序有一些重要的優點,甚至能夠比靜態編譯語言更好地生成代碼,現代的 JIT 編譯器常常向生成的代碼中插入掛鉤以收集有關程序行為的信息,以便如果要選擇方法進行重編譯,就可以更好地優化動態行為。
關於此方法的一個很好的例子是收集一個特定 array操作的長度。如果發現每次執行操作時該長度基本不變,則可以為最頻繁使用的
array長度生成專門的代碼,或者可以調用調整為該長度的代碼序列。由於內存系統和指令集設計的特性,用於復制內存的最佳通用常式的執行速度通
常比用於復制特定長度的代碼慢。例如,復制 8
個位元組的對齊的數據可能需要一到兩條指令直接復制,相比之下,使用可以處理任意位元組數和任意對齊方式的一般復制循環可能需要 10 條指令來復制同樣的 8
個位元組。但是,即使此類專門的代碼是為某個特定的長度生成的,生成的代碼也必須正確地執行其他長度的復制。生成代碼只是為了使常見長度的操作執行得更快,
因此平均下來,性能得到了改進。此類優化對大多數靜態編譯語言通常不實用,因為所有可能的執行中長度恆定的操作比一個特定程序執行中長度恆定的操作要少得
多。
此類優化的另一個重要的例子是基於類層次結構的優化。例如,一個虛方法調用需要查看接收方對象的類調用,以便找出哪個實際目標實現了接收方對象的虛方法。
研究表明:大多數虛調用只有一個目標對應於所有的接收方對象,而 JIT
編譯器可以為直接調用生成比虛調用更有效率的代碼。通過分析代碼編譯後類層次結構的狀態,JIT
編譯器可以為虛調用找到一個目標方法,並且生成直接調用目標方法的代碼而不是執行較慢的虛調用。當然,如果類層次結構發生變化,並且出現另外的目標方法,
則 JIT
編譯器可以更正最初生成的代碼以便執行虛調用。在實踐中,很少需要作出這些更正。另外,由於可能需要作出此類更正,因此靜態地執行這種優化非常麻煩。
因為動態編譯器通常只是集中編譯少量的熱方法,所以可以執行更主動的分析來生成更好的代碼,使編譯的回報更高。事實上,大部分現代的
JIT
編譯器也支持重編譯被認為是熱方法的方法。可以使用靜態編譯器(不太強調編譯時間)中常見的非常主動的優化來分析和轉換這些頻繁執行的方法,以便生成更好
的代碼並獲得更高的性能。
這些改進及其他一些類似的改進所產生的綜合效果是:對於大量的 Java 應用程序來說,動態編譯已經彌補了與 C 和 C++ 之類語言的靜態本地編譯性能之間的差距,在某些情況下,甚至超過了後者的性能。
缺點
但是,動態編譯確實具有一些缺點,這些缺點使它在某些情況下算不上一個理想的解決方案。例如,因為識別頻繁執行的方法以及編譯這些方法需要時間,所以應用
程序通常要經歷一個准備過程,在這個過程中性能無法達到其最高值。在這個准備過程中出現性能問題有幾個原因。首先,大量的初始編譯可能直接影響應用程序的
啟動時間。不僅這些編譯延遲了應用程序達到穩定狀態的時間(想像 Web
伺服器經
歷一個初始階段後才能夠執行實際有用的工作),而且在准備階段中頻繁執行的方法可能對應用程序的穩定狀態的性能所起的作用也不大。如果 JIT
編譯會延遲啟動又不能顯著改善應用程序的長期性能,則執行這種編譯就非常浪費。雖然所有的現代 JVM
都執行調優來減輕啟動延遲,但是並非在所有情況下都能夠完全解決這個問題。
其次,有些應用程序完全不能忍受動態編譯帶來的延遲。如 GUI 介面之類互動式應用程序就是這樣的例子。在這種情況下,編譯活動可能對用戶使用造成不利影響,同時又不能顯著地改善應用程序的性能。
最後,用於實時環境並具有嚴格的任務時限的應用程序可能無法忍受編譯的不確定性性能影響或動態編譯器本身的內存開銷。
因此,雖然 JIT 編譯技術已經能夠提供與靜態語言性能相當(甚至更好)的性能水平,但是動態編譯並不適合於某些應用程序。在這些情況下,Java 代碼的提前(Ahead-of-time,AOT)編譯可能是合適的解決方案。
AOT Java 編譯
大致說來,Java 語言本地編譯應該是為傳統語言(如 C++ 或
Fortran)而開發的編譯技術的一個簡單應用。不幸的是,Java 語言本身的動態特性帶來了額外的復雜性,影響了 Java
程序靜態編譯代碼的質量。但是基本思想仍然是相同的:在程序執行前生成 Java 方法的本地代碼,以便在程序運行時直接使用本地代碼。目的在於避免
JIT 編譯器的運行時性能消耗或內存消耗,或者避免解釋程序的早期性能開銷。
挑戰
動態類載入是動態 JIT 編譯器面臨的一個挑戰,也是 AOT
編譯的一個更重要的問題。只有在執行代碼引用類的時候才載入該類。因為是在程序執行前進行 AOT
編譯的,所以編譯器無法預測載入了哪些類。就是說編譯器無法獲知任何靜態欄位的地址、任何對象的任何實例欄位的偏移量或任何調用的實際目標,甚至對直接調
用(非虛調用)也是如此。在執行代碼時,如果證明對任何這類信息的預測是錯誤的,這意味著代碼是錯誤的並且還犧牲了 Java 的一致性。
因為代碼可以在任何環境中執行,所以類文件可能與代碼編譯時不同。例如,一個 JVM
實例可能從磁碟的某個特定位置載入類,而後面一個實例可能從不同的位置甚至網路載入該類。設想一個正在進行 bug
修復的開發環境:類文件的內容可能隨不同的應用程序的執行而變化。此外,Java 代碼可能在程序執行前根本不存在:比如 Java
反射服務通常在運行時生成新類來支持程序的行為。
缺少關於靜態、欄位、類和方法的信息意味著嚴重限制了 Java 編譯器中優化框架的大部分功能。內聯可能是靜態或動態編譯器應用的最重要的優化,但是由於編譯器無法獲知調用的目標方法,因此無法再使用這種優化。
內聯
內聯是一種用於在運行時生成代碼避免程序開始和結束時開銷的技術,方法是將函數的調用代碼插入到調用方的函數中。但是內聯最大的益處可能是優化方可見的代碼的范圍擴大了,從而能夠生成更高質量的代碼。下面是一個內聯前的代碼示例:
int foo() { int x=2, y=3; return bar(x,y); }final int bar(int a, int b) { return a+b; }
如果編譯器可以證明這個 bar就是 foo()中調用的那個方法,則 bar中的代碼可以取代 foo()中對
bar()的調用。這時,bar()方法是 final類型,因此肯定是 foo()中調用的那個方法。甚至在一些虛調用例子中,動態 JIT
編譯器通常能夠推測性地內聯目標方法的代碼,並且在絕大多數情況下能夠正確使用。編譯器將生成以下代碼:
int foo() { int x=2, y=3; return x+y; }
在這個例子中,簡化前名為值傳播的優化可以生成直接返回
5的代碼。如果不使用內聯,則不能執行這種優化,產生的性能就會低很多。如果沒有解析
bar()方法(例如靜態編譯),則不能執行這種優化,而代碼必須執行虛調用。運行時,實際調用的可能是另外一個執行兩個數字相乘而不是相加的
bar方法。所以不能在 Java 程序的靜態編譯期間直接使用內聯。
AOT
代碼因此必須在沒有解析每個靜態、欄位、類和方法引用的情況下生成。執行時,每個這些引用必須利用當前運行時環境的正確值進行更新。這個過程可能直接影響
第一次執行的性能,因為在第一次執行時將解析所有引用。當然,後續執行將從修補代碼中獲益,從而可以更直接地引用實例、靜態欄位或方法目標。
另外,為 Java 方法生成的本地代碼通常需要使用僅在單個 JVM 實例中使用的值。例如,代碼必須調用 JVM
運行時中的某些運行時常式來執行特定操作,如查找未解析的方法或分配內存。這些運行時常式的地址可能在每次將 JVM 載入到內存時變化。因此 AOT
編譯代碼需要綁定到 JVM 的當前執行環境中,然後才能執行。其他的例子有字元串的地址和常量池入口的內部位置。
在 WebSphere Real Time 中,AOT 本地代碼編譯通過 jxeinajar工具(參見圖 2)來執行。該工具對 JAR 文件中所有類的所有方法應用本地代碼編譯,也可以選擇性地對需要的方法應用本地代碼編譯。結果被存儲到名為 Java eXEcutable (JXE) 的內部格式中,但是也可輕松地存儲到任意的持久性容器中。
您可能認為對所有的代碼進行靜態編譯是最好的方法,因為可以在運行時執行最大數量的本地代碼。但是此處可以作出一些權衡。編譯的方法越多,代碼佔用的內存
就越多。編譯後的本地代碼大概比位元組碼大 10 倍:本地代碼本身的密度比位元組碼小,而且必須包含代碼的附加元數據,以便將代碼綁定到 JVM
中,並且在出現異常或請求堆棧跟蹤時正確執行代碼。構成普通 Java 應用程序的 JAR
文件通常包含許多很少執行的方法。編譯這些方法會消耗內存卻沒有什麼預期收益。相關的內存消耗包括以下過程:將代碼存儲到磁碟上、從磁碟取出代碼並裝入
JVM,以及將代碼綁定到 JVM。除非多次執行代碼,否則這些代價不能由本地代碼相對解釋的性能優勢來彌補。
圖 2. jxeinajar
跟大小問題相違背的一個事實是:在編譯過的方法和解釋過的方法之間進行的調用(即編譯過的方法調用解釋過的方法,或者相反)可能比這兩類方法各自內部之間
進行的調用所需的開銷大。動態編譯器通過最終編譯所有由 JIT
編譯代碼頻繁調用的那些解釋過的方法來減少這項開銷,但是如果不使用動態編譯器,則這項開銷就不可避免。因此如果是選擇性地編譯方法,則必須謹慎操作以使
從已編譯方法到未編譯方法的轉換最小化。為了在所有可能的執行中都避免這個問題而選擇正確的方法會非常困難。
優點
雖然 AOT 編譯代碼具有上述的缺點和挑戰,但是提前編譯 Java 程序可以提高性能,尤其是在不能將動態編譯器作為有效解決方案的環境中。
可以通過謹慎地使用 AOT 編譯代碼加快應用程序啟動,因為雖然這種代碼通常比 JIT
編譯代碼慢,但是卻比解釋代碼快很多倍。此外,因為載入和綁定 AOT
編譯代碼的時間通常比檢測和動態編譯一個重要方法的時間少,所以能夠在程序執行的早期達到那樣的性能。類似地,互動式應用程序可以很快地從本地代碼中獲
益,無需使用引起較差響應能力的動態編譯。
RT 應用程序也能從 AOT 編譯代碼中獲得重要的收益:更具確定性的性能超過了解釋的性能。WebSphere Real Time
使用的動態 JIT 編譯器針對在 RT 系統中的使用進行了專門的調整。使編譯線程以低於 RT
任務的優先順序操作,並且作出了調整以避免生成帶有嚴重的不確定性性能影響的代碼。但是,在一些 RT 環境中,出現 JIT
編譯器是不可接受的。此類環境通常需要最嚴格的時限管理控制。在這些例子中,AOT
編譯代碼可以提供比解釋過的代碼更好的原始性能,又不會影響現有的確定性。消除 JIT
編譯線程甚至消除了啟動更高優先順序 RT 任務時發生的線程搶占所帶來的性能影響。
優缺點統計
動態(JIT)編譯器支持平台中立性,並通過利用應用程序執行的動態行為和關於載入的類及其層次結構的信息來生成高質量的代碼。但是
JIT
編譯器具有一個有限的編譯時預算,而且會影響程序的運行時性能。另一方面,靜態(AOT)編譯器則犧牲了平台無關性和代碼質量,因為它們不能利用程序的動
態行為,也不具有關於載入的類或類層次結構的信息。AOT 編譯擁有有效無限制的編譯時預算,因為 AOT
編譯時間不會影響運行時性能,但是在實踐中開發人員不會長期等待靜態編譯步驟的完成。
表 1 總結了本文討論的 Java 語言動態和靜態編譯器的一些特性:
表 1. 比較編譯技術
兩種技術都需要謹慎選擇編譯的方法以實現最高的性能。對動態編譯器而言,編譯器自身作出決策,而對於靜態編譯器,由開發人員作出選擇。讓
JIT 編譯器選擇編譯的方法是不是優點很難說,取決於編譯器在給定情形中推斷能力的好壞。在大多數情況下,我們認為這是一種優點。
因為它們可以最好地優化運行中的程序,所以 JIT 編譯器在提供穩定狀態性能方面更勝一籌,而這一點在大量的生產 Java
系統中最為重要。靜態編譯可以產生最佳的互動式性能,因為沒有運行時編譯行為來影響用戶預期的響應時間。通過調整動態編譯器可以在某種程度上解決啟動和確
定性性能問題,但是靜態編譯在需要時可提供最快的啟動速度和最高級別的確定性。表 2 在四種不同的執行環境中對這兩種編譯技術進行了比較:
表 2. 使用這些技術的最佳環境
圖 3 展示了啟動性能和穩定狀態性能的總體趨勢:
圖 3. AOT 和 JIT 的性能對比
使用 JIT 編譯器的初始階段性能很低,因為要首先解釋方法。隨著編譯方法的增多及 JIT
執行編譯所需時間的縮短,性能曲線逐漸升高最後達到性能峰值。另一方面,AOT 編譯代碼啟動時的性能比解釋的性能高很多,但是無法達到 JIT
編譯器所能達到的最高性能。將靜態代碼綁定到 JVM 實例中會產生一些開銷,因此開始時的性能比穩定狀態的性能值低,但是能夠比使用 JIT
編譯器更快地達到穩定狀態的性能水平。
沒有一種本地代碼編譯技術能夠適合所有的 Java
執行環境。某種技術所擅長的通常正是其他技術的弱項。出於這個原因,需要同時使用這兩種編譯技術以滿足 Java
應用程序開發人員的要求。事實上,可以結合使用靜態和動態編譯以便提供最大可能的性能提升 —— 但是必須具備平台無關性,它是 Java
語言的主要賣點,因此不成問題。
結束語
本文探討了 Java 語言本地代碼編譯的問題,主要介紹了 JIT 編譯器形式的動態編譯和靜態 AOT 編譯,比較了二者的優缺點。
雖然動態編譯器在過去的十年裡實現了極大的成熟,使大量的各種 Java 應用程序可以趕上或超過靜態編譯語言(如 C++ 或
Fortran)所能夠達到的性能。但是動態編譯在某些類型的應用程序和執行環境中仍然不太合適。雖然 AOT
編譯號稱動態編譯缺點的萬能解決方案,但是由於 Java 語言本身的動態特性,它也面臨著提供本地編譯全部潛能的挑戰。
這兩種技術都不能解決 Java 執行環境中本地代碼編譯的所有需求,但是反過來又可以在最有效的地方作為工具使用。這兩種技術可以相互補充。能夠恰當地使用這兩種編譯模型的運行時系統可以使很大范圍內的應用程序開發環境中的開發人員和用戶受益。
『柒』 如何設置NDK的編譯選項
1. 概述
首先回顧一下 Android NDK 開發中,Android.mk 和Application.mk 各自的職責。
Android.mk,負責配置如下內容:
(1) 模塊名(LOCAL_MODULE)
(2) 需要編譯的源文件(LOCAL_SRC_FILES)
(3) 依賴的第三方庫(LOCAL_STATIC_LIBRARIES,LOCAL_SHARED_LIBRARIES)
(4) 編譯/鏈接選項(LOCAL_LDLIBS、LOCAL_CFLAGS)
Application.mk,負責配置如下內容:
(1) 目標平台的ABI類型(默認值:armeabi)(APP_ABI)
(2) Toolchains(默認值:GCC 4.8)
(3) C++標准庫類型(默認值:system)(APP_STL)
(4) release/debug模式(默認值:release)
由此我們可以看到,本文所涉及的編譯選項在Android.mk和Application.mk中均有出現,下面我們將一個個詳細介紹。
2. APP_ABI
ABI全稱是:Application binary interface,即:應用程序二進制介面,它定義了一套規則,允許編譯好的二進制目標代碼在所有兼容該ABI的操作系統和硬體平台中無需改動就能運行。(具體的定義請參考網路或者維基網路)
由上述定義可以判斷,ABI定義了規則,而具體的實現則是由編譯器、CPU、操作系統共同來完成的。不同的CPU晶元(如:ARM、Intel x86、MIPS)支持不同的ABI架構,常見的ABI類型包括:armeabi,armeabi-v7a,x86,x86_64,mips,mips64,arm64-v8a等。
這就是為什麼我們編譯出來的可以運行於Windows的二進製程序不能運行於Mac OS/Linux/Android平台了,因為CPU晶元和操作系統均不相同,支持的ABI類型也不一樣,因此無法識別對方的二進製程序。
而我們所說的「交叉編譯」的核心原理也跟這些密切相關,交叉編譯,就是使用交叉編譯工具,在一個平台上編譯生成另一個平台上的二進制可執行程序,為什麼可以做到?因為交叉編譯工具實現了另一個平台所定義的ABI規則。我們在Windows/Linux平台使用Android NDK交叉編譯工具來編譯出Android平台的庫也是這個道理。
這里給出最新 Android NDK 所支持的ABI類型及區別:
下面是我總結的一些常用的CFLAGS編譯選項:
(1)通用的編譯選項
-O2 編譯優化選項,一般選擇O2,兼顧了優化程度與目標大小
-Wall 打開所有編譯過程中的Warning
-fPIC 編譯位置無關的代碼,一般用於編譯動態庫
-shared 編譯動態庫
-fopenmp 打開多核並行計算,
-Idir 配置頭文件搜索路徑,如果有多個-I選項,則路徑的搜索先後順序是從左到右的,即在前面的路徑會被選搜索
-nostdinc 該選項指示不要標准路徑下的搜索頭文件,而只搜索-I選項指定的路徑和當前路徑。
--sysroot=dir 用dir作為頭文件和庫文件的邏輯根目錄,例如,正常情況下,如果編譯器在/usr/include搜索頭文件,在/usr/lib下搜索庫文件,它將用dir/usr/include和dir/usr/lib替代原來的相應路徑。
-llibrary 查找名為library的庫進行鏈接
-Ldir 增加-l選項指定的庫文件的搜索路徑,即編譯器會到dir路徑下搜索-l指定的庫文件。
-nostdlib 該選項指示鏈接的時候不要使用標准路徑下的庫文件
(2) ARM平台相關的編譯選項
-marm -mthumb 二選一,指定編譯thumb指令集還是arm指令集
-march=name 指定特定的ARM架構,常用的包括:-march=armv6, -march=armv7-a
-mfpu=name 給出目標平台的浮點運算處理器類型,常用的包括:-mfpu=neon,-mfpu=vfpv3-d16
-mfloat-abi=name 給出目標平台的浮點預算ABI,支持的參數包括:「soft」, 「softfp」 and 「hard」
『捌』 flex中FileReference download怎麼讓文件保存到默認位置!
Flex Builder 3.0 For MyEclipse ... 今天突然說要搞flex,所以就在網上搞了點環境安裝的方法 Flex Builder 3.0 For MyEclipse 7.0M1 安裝方法一.首先下載安裝MyEclipse 7.0M1 安裝到 D:\Program Files\MyEclipse 7.0M1 二.下載安裝Flex Builder 3.0 下載完開始安裝FB3_WWEJ_Plugin.exe,基本都是next,有改變的地方就是FB3_WWEJ_Plugin.exe的安裝路徑,這個隨個人愛好,接著選擇已經存在的eclipse路徑,偶的是D:\Program Files\MyEclipse 7.0M1\eclipse;選擇完繼續next一直到done。 然後打開MyEclipse 在 file-->new-->other 在彈出窗口中有個 flex builder 文件夾,點擊即可看見選項。在MyEclipse 7.0M1下的安裝 ... by xiuying 2009-11-24 回復 (0) 相關討論 flex+cairngorm+spring+hibernat ... 准備: SQLserver2005: JDK: jdk-1.5.0.0 TOMCAT: tomcat-6.0.20 ECLIPSE: eclipse-3.3 MYECLIPSE插件: MyEclipse-6.5 Flex: FB3_WWEJ_Plugin.exe BLEAZEDS: BlazeDS,下載地址: ... by tianhengbao 2010-01-04 回復 (14) [轉] Flex Builder 3.0 for Ecl ... 這兩天准備學習Flex,於是下載了Flex Builder 3.0 For Eclipse plugin准備安裝. 但是安裝後啟動Eclipse,找了半天也沒找到Flex.而且Flex Builder會把JRE也安裝.覺得這樣很不爽. 所以我想到能不能來個Flex Builder綠色安裝方法呢. 想到就做.下面是我的安裝過程.(前提是系統已經有JRE,且JAVA環境變數已經配置OK,此處 ... by zhanjia 2010-03-06 回復 (0) Flex3開發環境搭建文檔(轉)安裝所需要軟體 Eclipse3.3 MyEclipse6.0(可選) Jdk1.5 Flash Plyer ActiveX 10 Windows debugger(IE) FB3_WWEJ_Plugin.exe(flex builder3) 安裝步驟 Eclipse安裝配置(略) MyEclipse安裝配置(可選)(略) Jdk安裝配置(略)一.首先下載安裝Eclipse 3.3 解壓到 D: ... by zhannufeifei 2010-01-27 回復 (0) Flex學習筆記_02 Flex的安裝和開 ... 1. 下載Flex Adobe官方網站( ) SDK : 可獨立安裝,Flex Framework包含在SDK中。SDK中配有Flex編譯器。 Flex Buidler : 整合SDK,Flex強大的開發IDE。30天免費。 $499。 另有一套功能強大的圖標組件(Flex Charting),含該組件是$799。書上說的是2.0版本。 ... by enboga 2008-06-16 回復 (9) jbpm與ssh完整示例(一) 說明 Jbpm的開發流程可以按如下幾步進行:流程的定義、流程的發布、流程實例的啟動、流程節點的流轉、查看流程節點圖片。本示例是在spring2.0、hibernate3.2、struts1.2下開發。如果是其它版本的框架也很容易做程序的遷移。流程的定義流程的定義建議使用jbpm提供的eclipse下的插件,圖形化配置插件安裝文件可以到jbpm-starters-kit-3.1.4\jbpm-d ... by shazhenzhong 2009-01-10 回復 (4) 相關新聞 MyEclipse 7.0 m1 已經發布啦!下邊是官網的下載地址。正在下載中。。。。。 MyEclipse 7.0 M1 新版本修改了環境bugs,並且支持新
國內最早的破解組織 www.china-crack點com
軟體破解范圍:
1.軟體脫殼、軟體破解、加密製作注冊機、無源碼修改界面版權等信息
1.軟體逆向工程(視難度是否接單,逆向工程理論可以實現,實際還原代碼並非易事)
2.加密狗破解、加密狗復制
3.大型軟體:如工程類軟體破解版本銷售
4.軟體開發
以下是部分破解版。
導線測量平差
WinRCAD路線設計系統
全數字攝影測量系統
武漢吉奧GeoScan
LGO 靜態後處理軟體
控制網測量優化設計與平差
數字化測圖系統EDMS2002
形矢量化的極品VPStudio中文版
工程測量數據處理系統
IRSA遙感圖像處理系統
scan2cad v6光柵矢量化軟體
Settlement(河海大學沉降觀測)
武漢適普VirtuoZo3.7(全數字測量攝影系統)
LENSPHOTO數字近景攝影測量系統GPgrid
路線工程勘測施工輔助系統R
RIVERTOOLS V2.0(強大的地型與河網繪制和分析軟體)
ARCVIEW 8.0/ ARCVIEW GIS VERSION 桌面地理信息系統
MDS2002 FME.SUITE
大恆vid2000企業版 包括圖庫和教學
德塞設計大師
德賽裝修二維渲染
cxmt 建立在3dmax基礎上的裝飾軟體
造景師/造型師 (根據狗的特徵碼做的破解,支持升級)
SLI2001園林設計 (英文)
園林綠化工程預算系統版
圖聖園林設計系統5.5 (分為兩個版本,一個是直接破解的主文件。不支持升級,一個為狗特徵碼的補丁,支持升級)
Vue d'Esprit4 (國外軟體)是一款強大的3D自然景觀創作工具,它有著令人驚奇的渲染質量,並非常容易使用
Photo Garden Design (國外軟體)Sierra公司出品的又一精品園林設計效果圖軟體,徹底解放立面效果圖製作,這是最優秀、最便捷的效果圖軟體
路線大師
公路涵洞cad系統
工程資料管理軟體
結構計算軟體tbsa
同濟大學道路設計系統
『玖』 預算七八千左右,求一台電腦硬體配置,用來做編譯android ROM用!
主你好,8000元的主機性能已經非常強大了,足以通殺目前所有的大型單機游戲,個人強烈推薦性能與I7 2600相當,但價格便宜500元的英特爾最新推出的採用22納米工藝和Ivy Bridge內核,69瓦低功耗,集成DDR3 1600內存控制器的E3-1230 V2處理器,配置如下:
CPU: Intel 酷睿i7 2600K(盒) 1920
風扇:超頻三黃海增強版S90D 雙風扇 雙銅管散熱 18dB低噪音 95
主板:微星Z77A-GD55 採用9相供電 具備2個SATA3和2個原生USB3.0介面 推薦首選 1399
華碩P8Z77-V LE 採用6+2相供電 具備2個SATA3和6個原生USB3.0介面 1399
內存:金士頓HyperX PnP 8GB DDR3 1600 330
硬碟:系統盤 美光m4 CT64M4SSD2(64GB) 669
存儲盤 希捷Barracuda 1TB 7200轉 64MB 單碟 560
顯卡:索泰GTX 570毀滅者 HA(顯卡晶元:GeForce GTX 570 顯存容量:1280MB GDDR5 顯存位寬:320bit 核心頻率:732MHz 顯存頻率:3800MHz 流處理器480個)2599
華碩ENGTX570 DCII/2DIS/1280MD5(顯卡晶元:GeForce GTX 570 顯存容量:1280MB GDDR5 顯存位寬:320bit 核心頻率:742MHz 顯存頻率:3800MHz 流處理器480個)2999
藍寶HD7870 2GB GDDR5海外版(顯卡晶元:Radeon HD 7870 顯存容量:2048MB GDDR5 顯存位寬:256bit 核心頻率:1000MHz 顯存頻率:4800MHz 流處理器1280個)2899
藍寶HD6970 2GB GDDR5(顯卡晶元:Radeon HD 6970 顯存容量:2048MB GDDR5 顯存位寬:256bit 核心頻率:880MHz 顯存頻率:5500MHz 流處理器1536個)2999
電源:ANTEC VP550P 額定550瓦最大632瓦主動式 399
機箱:游戲悍將特種部隊阿爾法戰爭版 尺寸520×218×510mm 可容納38厘米顯卡 399
合計:7845
說明:性能強大性價比極高的處理器、英特爾最新推出的7系Z77晶元組主板(擁有Z68的全部功能,並且具備原生的USB3.0介面)、8G DDR3 1600內存、GTX570顯卡、安鈦克額定550瓦電源、外觀漂亮板材扎實的機箱,目前沒有玩不了的大游戲了
『拾』 free是
free英音:[fri:]美音:[fri]
free的中文翻譯
以下結果由譯典通提供詞典解釋
free
形容詞 a.
1.自由的;不受控制的
He felt himself at last absolutely free.
他終於覺得自己完全自由了。
2.隨意的,不受約束的[+to-v]
You are free to criticize my work.
你可以隨意批評我的工作。
3.免費的[Z][(+of)]
They enjoy free medical care.
他們享受免費醫療。
4.空閑的[Z]
I'm quite free this evening.
我今晚沒有事。
5.閑置的;未被佔用的[Z]
Is that seat free?
那個座位有人嗎?
6.暢通的
All students have free access to the library.
所有學生都可自由進入圖書館。
7.未固定的;松開的[Z]
Tie this end to the pole but leave the other end free.
將這一端系在柱子上,讓另一端松開著。
8.無...的[F][(+from/of)]
The lake is free of pollution.
這湖沒有污染。
9.自然的;流暢的;優美的
He walked with a free gait.
他走路步態瀟灑。
10.慷慨的;大手大腳的[F][(+with)]
He is free with his money.
他花錢大手大腳。
11.隨便的;放肆的
be free with somebody
對某人放肆
12.【化】游離的;自由的
副詞 ad.
1.免費地
Children are admitted free.
孩子們免費入場。
2.無約束地
Don't let the dogs run free.
別讓狗到處亂跑。
3.松開著;脫開著
The horse broke free.
馬掙脫了韁繩。
及物動詞 vt.
1.使自由;解放[(+from)]
Abraham Lincoln freed the slaves.
亞伯拉罕·林肯解放了奴隸。
2.使解脫[O2]
-free
復合形 comb.form
1.(構成形容詞或副詞)表示"無(的)","免除(的)"(如:carefree, ty-free)
以下結果來自互聯網網路釋義
free
1.自由的,任意的,游離的
醫學翻譯詞彙F - 『原版英語』 閱讀網
free 自由的,任意的,游離的
2.釋放
新概念英語詞彙手冊 第三冊-英語,英語考試...
free vt.釋放
3.自由的,空閑的,免費的
李陽瘋狂英語口語突破(磁帶加VCD盒裝)正...
010 free 自由的,空閑的,免費的
free pascal是turbo pascal的接班人,32位,且是一個跨平台的編譯器,可在大多數主流的操作系統上面運行,包括Linux、windows、Unix,就連最新的windows 7也支持!
Free Pascal 詳細資料
Free Pascal是個由國際組織開發的完全的win32的pascal語言編譯器,類似delphi,可編寫windows程序。
此前被廣泛使用的PASCAL編譯器普遍為Turbo Pascal & Borland pascal。但是它們可用的空間十分有限。而Free Pascal理論上可以使用4GB內存。所以在利用Free Pascal編程的時候,可以改變原有思路,將大量時間轉嫁給空間,提高效率。
雖然Free Pascal盡量設計得和Turbo Pascal接近,但是由於以下的兩個原因,兩者之間還是有一些區別的:
1. Free Pascal是一個32位的編譯器,而Turbo Pascal只是16位編譯器;
2. Free Pascal是一個跨平台的編譯器,而Turbo Pascal只在windows和DOS上使用。
如果你的代碼是遵守ANSI Pascal的,那麼代碼從Turbo Pascal移植到Free Pascal是沒有問題的。
下面是在Turbo Pascal上可以使用,但是在Free Pascal就不能使用的一些語言特性:
1. 函數和過程在使用時,參數的類型必須和定義時完全一致。原因是在Free Pascal中添加了函數,EXCEPT,RAISE成為了關鍵字,因此不能作為函數和過程的名字。
3. FAR,NEAR不再是關鍵字了。原因是Free Pascal是32位系統,不再需要這些關鍵字。
4. 布爾表達式不一定要全部進行計算。只要最終結果已經能夠確定,就不再計算其它還沒有計算的部分了。比如布爾表達式exp1 AND exp2 AND exp3,如果已知exp1的結果是false,那麼怎麼表達式的結果肯定是false,exp2和exp3就不用進行計算了。
5. 在Free Pascal中,集合中的元素都是4個位元組長的。
6. 表達式執行的順序是不確定的。比如對於表達式a:=g(2)+f(3); 不保證g(2)一定在f(3)之前執行。
7. 如果用Rewrite打開文件,那麼文件就只能被寫入了。如果需要讀取這個文件,要對文件執行Reset。
8. Free Pascal在程序結束之前一定要關閉輸出文件,否則輸出文件可能不能被正確的寫入。
9. Free Pascal理論上可以使用4GB的內存,因此實際上幾乎可以使用系統中的所有剩餘內存(除非賽題中有內存限制)。這是Free Pascal由於32位的編譯器。但是對於Turbo Pascal來說,由於是16位的編譯器,因此不能定義大小超過64KB的數據類型和變數,並且在DOS實模式下可以使用的內存總數只有640KB。
下面是Free Pascal相對於Turbo Pascal擴充的一些功能:
1. 函數可以返回復雜的類型,比如記錄和數組。
2. 在函數中,函數的返回值通常可以作為一個變數來處理。比如:
function a : longint;
begin
a:=12;
while a>4 do
begin
{...}
end;
end;
這個例子在Turbo Pascal中,a>4會被認為是函數的遞歸調用,但是在Free Pascal中會認為a只是一個變數。如果想在Free Pascal中實現遞歸調用,就要寫成下面的形式:
function a : longint;
begin
a:=12;
{ this is the recursive call }
if a()>4 then
begin
{...}
end;
end;
3. exit可以接受一個參數作為函數的返回值。比如:
function a : longint;
begin
a:=12;
if a>4 then
begin
exit(a*67); {函數的返回值就是a*67 }
end;
end;
4. Free Pascal支持函數重載。可以用相同的名字定義不同的函數,只要這些函數的參數不同,就是不同的函數。比如:
procere DoSomething (a : longint);
begin
{...}
end;
procere DoSomething (a : real);
begin
{...}
end;
可以使用不同的參數類型longint或者real來調用不同的DoSomething過程。
由於這個功能,函數的提前聲明必須有完整的參數聲明:
procere x (v : longint) : forward;
{...}
procere x;{ 這里定義的過程x重載了前面聲明的過程x。因此這里的兩個x是不同的}
begin
{...}
end;
5. Free Pascal容許運算符重載。比如,可以自己為矩陣運算定義一個「+」運算。
6. Free Pascal在windows 95及其以上的windows版本上支持長文件名。對於文件名,由於windows系統對大小寫不敏感,因此在程序中,文件名的大小寫是無關的。但是對於其它大小寫敏感的系統,比如linux,程序中用到的文件名必須和系統中的文件名完全一致。但是由於信息學競賽的評測系統一般是linux,因此要求程序中的文件名和系統中的文件名一樣。
Free Pascal 官方網站:http://www.freepascal.org/
Free Pascal 官方FTP: ftp://ftp.freepascal.org/
Free Pascal 2.2.4(目前的最新版)官方下載地址:ftp://ftp.freepascal.org/pub/fpc/dist/2.2.4/i386-win32/fpc-2.2.4.i386-win32.exe
free的網路:
free
C語言提供的庫函數:
原型: void free(void *ptr)
功 能: 釋放已分配的塊
程序例:
#include <string.h>
#include <stdio.h>#include <malloc.h>
int main(void)
{
char *str;
/* allocate memory for string */
str = malloc(10);
/* "Hello" to string */
strcpy(str, "Hello");
/* display string */
printf("String is %s\n", str);
/* free memory */
free(str);
return 0;
}
歌曲:free
歌手:蕭亞軒 專輯:1087
something 指引我這條路
命運安排的太倉促
有人進有人出不過三分鍾熱度
窗外的天氣就要放晴
那朵紅薔薇更完美
天一亮日一出
綻放在全新的國度
我渴望的軀體沸騰了血液
從指尖到腳底全速前進
若是你有化學效應
那就是證據
you know i know
that you'll never know
是與非對與錯你說他說
很輕松一窩瘋
那抱歉那不是我
no pain no gain
driving me insane
一不做二不休
完美主義的執著
赤裸裸很遺憾那就是我
我知道我在哪裡
下一秒呼風喚雨
拋開你沉重外衣
so let me set you free
上帝預言的是未知數
漫長的蟄伏快結束
睜開眼看清楚
放手搏明天的賭注
幸福的地圖在手心
美麗的插曲開始延續
一舉手一投足
看清楚這就是態度
我擦幹了眼睛把睫毛刷齊
從唇蜜到眼影全部更新
若是你有心跳反應
那就是證明
you know i know
that you'll never know
是與非對與錯你說他說
很輕松一窩瘋
那抱歉那不是我
no pain no gain
driving me insane
一不做二不休
完美主義的執著
赤裸裸很遺憾那就是我
我知道我在哪裡
下一秒呼風喚雨
拋開你沉重外衣
so let me set you free
歌詞提供再興
不只你的過去..
let me set you
let me set you free
you know i know
that you'll never know
是與非對與錯你說他說
很輕松一窩瘋
那抱歉那不是我
no pain no gain
driving me insane
一不做二不休
完美主義的執著
赤裸裸很遺憾那就是我
我知道我在哪裡
下一秒呼風喚雨
拋開你沉重外衣
so let me set you free☆..
free
linux命令:查看當前系統內存的使用情況,它顯示系統中剩餘及已用的物理內存和交換內存,以及共享內存和被核心使用的緩沖區。
格式:free [-b | -k |-m]
命令中各個選項的含義:
-b:以位元組為單位顯示。
-k:以K位元組為單位顯示。
-m:以兆位元組為單位顯示。
網站前台創作模式(FrEE)
這是一種符合 KISS 原則(Keep it Simple, Stupid),有別於任何一種傳統 CMS 系統的網站創作模式。您可以直接在網站的最終頁面上進行全站創作,而不是在網站的後台管理系統中遠離現場工作,這種工作模式的好處是,您象普通訪問者一樣瀏覽自己的網站,發現需要更新的地方,立即在現場進行更新,您是網站的創作著,也是消費者,這種模式幫助您從用戶的角度及時發現並解決問題。這種差別好比20年前的字處理程序,您通過格式控制字元控制格式,然後轉到預瀏狀態看效果;現在的字處理程序是直接所見即所得的,您的文檔編輯現場就是最終結果現場。
FrEE (Front End Editing) 保證了網站創作者思路的連貫性,結合本系統的隨機資源(Random Resource)功能,您可以不離開編輯界面,直接處理頁面中的格式文本,鏈接,表格,圖片,Flash,音頻,視頻,供下載資源等。我們的編輯界面(基於 TinyMce 並進行了功能上的改進)中直接集成了站點資源的上載能力,您可以直接在現場引用這些資源,系統會自動幫您生成這些資源的 HTML 引用代碼。總之,FrEE 可以使您立即投入到站點的創作,而不必象傳統的 CMS 那樣需要事先對整個站點進行規劃,配置和復雜的初始化工作,COMSHARP CMS 不需要初始化,您在第一時間便進入網站的前端,在第一時間便上手創作,您不需要關心內容之外的其它東西,不需要安裝和啟用並配置那些復雜的模塊(Mole),不需要在一個復雜的界面裡布局版本,不需要在後台規劃站點的目錄結構,准備站點的資源素材,不需要傳統 CMS 中令人生畏的前期准備,您所有的工作是在一個和普通訪問者所見的完全一致的頁面上完成全站點的建設。
FrEE 模式如何工作?
您象普通用戶那樣瀏覽自己的網站(需要以系統管理員的身份登錄)
如果您的網站剛剛開始創建,您看到的將是一個沒有內容的框架,雖然沒有內容,但仍然具有完整的網站結構
在頁面的導航和內容區域,您會看到添加,刪除,編輯,移動,隱藏等創作按紐
您可以直接在頁面上添加目錄,子目錄,頁面等內容,並自動生成網站的導航系統,麵包屑指示系統以及最終頁面
一直這樣工作下去,一個完整的網站就這樣誕生
在 FrEE 界面中您可以做什麼?
如果把網站做一個剖析,我們會發現,構成網站的要素有三個,內容,目錄結構,版面布局,如下圖所示,網站的核心是內容,它應該占據整個站點 80% 的比重,同樣一個 CMS 系統 80% 的重點,應放在內容的創作上;目錄結構是對內容的組織,幫助訪問者快速而方便地找到內容,體現在站點結構中,就是導航系統,清晰,簡潔,扁平的目錄結構,是幫助訪問者快速定位內容的唯一方法;網站要素中最外面一層,也是給用戶第一印象的層面是整個站點的版面布局和設計,好的布局加好的設計會讓訪問者獲得第一體驗,我們承認,絕大多數訪問者非常注重站點的設計和版面布局,糟糕的設計和布局會在第一時間將用戶嚇跑,但並不是說,好的設計和布局就會留住客人,客人一旦留下來,能抓住他/她的就只有內容和對內容的組織了,是否有好的內容才是能否永久留住客人的關鍵。
我們還發現,由於設計和布局往往是一種主觀感覺和印象,有的網站雖然沒有很好的設計,仍然能留住大量客人,是因為客人在那裡發現了有價值的內容,而一旦內容將客人吸引住的時候,很多人會慢慢接受一開始不討好的設計,甚至最終愛上那種設計,Craigslist 就是一個很好的例子。
鑒於此,銳商 CMS (COMSHARP CMS)的設計,始終遵守上面的觀念,我們把整個系統 90% 的精力放在對內容的創作和組織上,在站點的前端編輯界面(FrEE 界面),您可以在現場完成站點 99% 的工作,您可以直接在目錄組織,也就是導航系統上添刪項目,然後在剛剛創建的目錄下創作內容,至於站點的版面布局和設計元素,您可以在完成內容以後,在站點的系統區通過選擇相應模板主題,通過對站點各區域的配色,通過替換站點的 Logo, Banner 以及其它裝飾性圖片,一次性完成。
現階段,很多企業網站的設計存在著大量誤區,過多的精力和預算放在設計上,無暇顧及內容,很多企業網站就象花瓶,只是個擺設,它無法幫助您向客戶提供服務,也無法幫助您通過網路增加銷售,因為用戶不會信賴一個內容匱乏,錯漏,過時的網站。
關於耐克的free:
Nike Woven
這個系列剛上市的後,反響很不錯,起透氣性和舒適性都相對以前的鞋款有很大的改善。其中還有Nike Free Woven,他融合了Free技術,其舒適性更加完善。