通吃源碼
㈠ 源碼定位map
1OD打開看特徵碼前後有什麼明顯的函數沒有,如有,到源碼找那個函數,函數附近就是特徵碼;
2建議重新定位特徵碼,好多時候都是定位不準確造成的。
補充:
3有些特徵碼無對應的源碼。 我在做gh0st免殺的時候,特徵碼定位在GetStartupInfoA上,而程序中根本找不到這個函數。我是通過重新定位(指定定位開始位置,結束位置)解決的。
㈡ 既可以運行於windows又可以運行於linux的腳本編程語言是什麼有沒有推薦個。想學一門通吃的
使用python吧,跨平台,而且不許要編譯,直接把源碼拿過去就能運行。
如果解決了您的問題請採納!
如果未解決請繼續追問!
㈢ 499元+源碼+網路 憶捷M7高清播放機評測
【IT168 評測】採用Realtek 1073晶元的播放機價格一般在500---750之間,這個晶元的誕生,迎合了大多數同胞的胃口,便宜實用。從最基本的DAT、MPG1到RMVB格式的電影,再到H.264和藍光原盤拷貝包含ISO的映像文件的1920x1080P的全高清電影,可以說從上到下通吃,都能很好的播放。
最初的Realtek 1073DD芯作不支持次世代音頻,成為當時發燒友心中的一大遺憾。不過2010年推出的RTD1073DD的升級版RTD1073DDC在保留了前作的優點基礎上,增加了支持DTS-HD和Dolby trueHD高清音頻格式源碼輸出功能,而採用RTD1073DDC晶元的高清播放機憑借著強大的功能及高性價比成為消費者心中的完美之作。
憶捷近期推出了採用RTD1073DDC的升級版M7高清播放機,官方售價僅499元,到底這款產品的性能如何?請跟隨筆者一起去體驗吧!
產品名稱憶捷M7高清播放機
輸出解析度
1920×1080(1080P)
存儲介質
內置SATA硬碟
視頻格式
RM,RMVB,MP4,MKV,AVI,MOV,TS,WMV,DAT,TS,MTS,TP,VOB,DAT,FLV,MPG,ISO,IFO
音頻格式
MP3,WMA,WAV,OGG,AAC,LPCM,FLAC,APE,AC3
圖片格式
JPG,JPEG,GIF,BMP,PNG
字幕
SRT,SUB,IDX,SSA,SMI
介面
復合介面(AV介面),高清色差 (分量色差), HDMI, 左右聲道,同軸光纖 , USB介面,網路介面,SATA
尺寸
210×160×54mm
附件
用戶手冊,保修卡,合格證,精美包裝,遙控器
憶捷M7高清播放機開箱圖
初見憶捷M7高清播放機,純黑色簡潔的外包裝讓人眼前一亮,少去了花哨的圖案,令人更感覺時尚有活力。憶捷M7支持的格式比較豐富,常用的H.264.、MPEG1,2/4、DIVX、XVID、VC1、RMVB等格式全部可以解碼,還支持DTS-HD、TrueHD次世代及7.1聲道源碼輸出、高速下載及在線播放等網路功能。
▲憶捷M7高清播放機外包裝
▲憶捷M7高清播放機外包裝
▲採用1073晶元
▲開箱後,產品機身設計依然簡潔
▲正面實拍
憶捷M7高清播放機外觀及附件
憶捷M7高清播放機是由世界頂級設計大師Armani傾心打造,突顯簡約時尚、經典高雅的外觀設計風格,傳承了憶捷簡約、品位、領先的設計理念。產品應用鋁鎂合金+ABS進口材質,表面採用黑色磨砂處理工藝,凸顯高貴氣質。
▲左側超大數字VFD顯示屏,讓整體外觀彰顯大氣與豪華風格。
▲中框鋼琴烤漆的處理美觀大方
▲背部介面
憶捷M7高清播放機介面豐富,提供同軸、光纖、HDMI、色差分量、AV端子、網路埠、雙路USB 3.0介面,介面還是齊備的。復合介面(AV介面),高清色差 (分量色差), HDMI, USB介面,網路介面,SATA,左右聲道,同軸光纖等介面。
▲機身右側具有這不同的存儲介面,包括一個SATA介面和兩個USB介面
▲電源線、AV線、USB傳輸線都配齊了,遺憾的是沒有配備一條HDMI線
▲遙控器特寫,手感還是不錯的
憶捷M7高清播放機菜單設置詳解
憶捷M7高清播放機菜單界面採用的是藍色界面,視覺效果不錯。主菜單包括六個選項,分別是:電影、音樂、圖片、文件復制、設置菜單和媒體共享,這些功能可以滿足一般人群的需求。
▲設置菜單選項
▲聲音設置包括夜間模式、HDMI輸出和光纖輸出三個選項
▲影像設置可以對屏幕比例、亮度、對比度、色相選項進行設置
▲網路設置除了有線網路和無線網路外,還有一個家庭撥號網路連接方式
▲系統設置可以根據自己的需要對機器進行語言文字編碼的設定
▲雜項設置裡面有恢復播放、幻燈片時序等功能,在實際應用中還是比較有用的
▲文件復制菜單
▲此功能可以將USB存儲文件、硬碟、光碟和網路文件中任意復制
憶捷M7高清播放機視頻播放測試
一款高清播放機性能的好壞,最重要的就是其播放能力,憶捷M7支持H.264.、MPEG1,2/4、DIVX、XVID、VC1、RMVB等1080P全高清、全格式解碼,支持碼率高達104Mbps。支持藍光原盤BD-ISO格式,支持文件夾簡易導航播放功能,內嵌PGS字幕,支持多段TS、M2TS文件播放及斷點無縫續播功能。下面筆者將挑選幾個常用視頻格式文件進行測試。
▲電影菜單及視頻播放菜單
▲720P高清電影,與以前產品一樣都有縮略圖顯
▲哈利波特播放畫面實拍
▲FLV格式文件播放
▲FLV格式播放效果實拍
▲MKV格式文件播放
▲MKV格式播放效果實拍
▲AVI格式文件播放
▲AVI格式播放效果實拍
▲RMVB文件播放
通過對以上FLV、AVI、MKV、720P等視頻格式的測試,這款產品都能快速識別,播放速度流暢。
憶捷M7高清播放機音頻播放測試
憶捷M7作為推動RTD1073DDC+方案普及型產品,率先支持次世代音頻輸出設置,用戶可通過HDMI輸出DTS-HD、DolbyTrueHD次世代音軌及7.1聲道源碼輸出功能。配合次世代功放設備,以更多的聲道、更靈活的取樣頻率和聲道選取優勢,達到猶如身臨其境的原聲視聽效果。這款產品支持MP3、OGG、WMA、FLAC、APE等格式的播放。
▲音樂播放菜單
▲無損音樂APE格式播放
▲WMA格式音樂播放
▲MP3格式播放
▲MP3格式音樂播放
▲APE格式音樂播放
在常規的音樂格式文件上,筆者進行了放MP3、WAM和無損APE格式文件的播放,測試過程中都能流暢播放,其中沒有斷點、跳點的現象出現。
憶捷M7高清播放機圖片瀏覽功能
憶捷M7高清播放機在圖片瀏覽功能上支持JPEG、BMP、GIF、PNG等格式的播放,可以根據自己的需要將圖片進行旋轉、2-16倍的放大和幻燈片播放等功能。筆者採用的是自己遊玩的照片進行測試,播放效果令人滿意。
▲圖片播放菜單
▲圖片播放效果實拍
▲圖片播放效果實拍
▲圖片播放效果實拍
▲圖片播放效果實拍
▲圖片播放效果實拍
▲圖片播放效果實拍
▲圖片播放效果實拍
憶捷M7高清播放機網路功能體驗
在網路發達的現在,主流高清播放機都已支持在線觀看和下載功能。憶捷M7也不例外,支持優朋普樂、YOUKU等在線播放功能,通過升級第三方固件支持天翼視訊、搜狐電影、網路奇異、ku6酷六、激動網、土豆、新浪、音悅台MV 、QQLIVE等眾多在線點播功能,還可通過固件升級支持BT/PT/電驢等下載功能,同時支持外接WIFI無線網路、NAS區域網等豐富互聯網路功能。
▲媒體共享菜單
▲優酷視頻播放
▲還根據評論對視頻進行了分類,有今日、本周和本月最多評論的視頻選項
▲還能通過搜索功能進行視頻的搜索
▲weather天氣情況選項
▲voole優朋視頻播放選項
▲RSS News新聞瀏覽選項
▲RSS News選項中可以直接瀏覽新浪網站
對該機網路功能的測試中,筆者採用的是4M寬頻對視頻播放、天氣查詢及網頁瀏覽分別進行的測試,播放速度很快,在線觀看視頻時也沒有遇到斷點、緩沖的情況,測試成績令人滿意。
評測總結
優點:1、外觀時尚大氣;2、音視頻格式覆蓋廣、解碼能力強;3、網路功能豐富。
缺點:1、沒有配備HDMI線;2、在進行電影播放時,不能直接讀取音樂、圖片格式,必須回到主菜單重新進入音樂菜單或者圖片菜單方可。
對於一款499元的高清播放機來說,筆者認為憶捷M7的性能足夠強大、網路功能也比較豐富,加上支持DTS-HD和Dolby trueHD高清音頻格式源碼輸出功能,無論是對一般家庭還是發燒友來說都可以滿足需求,是一款性價比較高值得推薦的產品。
㈣ JAVA如何閱讀代碼更高效
本來不想回答,翻到下面那些答復實在看不過去,就花點功夫整理下吧,希望對有人心能有幫助。
閱讀分析源代碼,一些有效的方法是:
1、閱讀源代碼的說明文檔和API文檔。
2、如果源代碼有用法示例或向導,先閱讀這個。
3、了解整個項目的模塊結構,可以按模塊進行閱讀。
4、隨時使用查找功能(或超鏈接)閱讀關聯類或關聯方法。
5、對於有疑問的地方,不妨寫幾行單元測試。
6、由淺入深,由易到難,多閱讀優秀的開源項目,代碼閱讀水平會突飛猛進。
㈤ 比較ASP php 和JSP的優缺點
ASP、JSP、PHP 三種技術比較
目前,最常用的三種動態網頁語言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。
簡 介
ASP全名Active Server Pages,是一個WEB伺服器端的開發環境,利用它可以產生和執行動態的、互動的、高性能的WEB服務應用程序。ASP採用腳本語言VBScript(Java script)作為自己的開發語言。
PHP是一種跨平台的伺服器端的嵌入式腳本語言。它大量地借用C,Java和Perl語言的語法, 並耦合PHP自己的特性,使WEB開發者能夠快速地寫出動態產生頁面。它支持目前絕大多數資料庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(http: //www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。
JSP是Sun公司推出的新一代網站開發語言,Sun公司藉助自己在Java上的不凡造詣,將Java從Java應用程序和Java Applet之外,又有新的碩果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。
三者都提供在 HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。但JSP代碼被編譯成 Servlet並由Java虛擬機解釋執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。在ASP 、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML頁面只依賴於Web伺服器,而ASP 、PHP、JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP 、PHP、JSP三者都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
技術特點:
ASP:
1. 使用VBScript 、 JScript等簡單易懂的腳本語言,結合HTML代碼,即可快速地完成網站的應用程序。
2. 無須compile編譯,容易編寫,可在伺服器端直接執行。
3. 使用普通的文本編輯器,如Windows的記事本,即可進行編輯設計。
4. 與瀏覽器無關(Browser Independence), 客戶端只要使用可執行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設計的網頁內容。Active ServerPages 所使用的腳本語言(VBScript 、 Jscript)均在WEB伺服器端執行,客戶端的瀏覽器不需要能夠執行這些腳本語言。
5.Active Server Pages能與任何ActiveX scripting語言兼容。除了可使用VB Script或JScript語言來設計外,還通過plug-in的方式,使用由第三方所提供的其它腳本語言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 對象。
6. 可使用伺服器端的腳本來產生客戶端的腳本。
7. ActiveX Server Components(ActiveX 伺服器組件 )具有無限可擴充性。可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設計語言來編寫你所需要的ActiveX Server Component 。
PHP:
1 資料庫連接
PHP可以編譯成具有與許多資料庫相連接的函數。PHP與MySQL是現在絕佳的群組合。你還可以自己編寫外圍的函數去間接存取資料庫。通過這樣的途徑當你更換使用的資料庫時,可以輕松地修改編碼以適應這樣的變化。PHPLIB就是最常用的可以提供一般事務需要的一系列基庫。但PHP提供的資料庫介面支持彼此不統一,比如對Oracle, MySQL,Sybase的介面,彼此都不一樣。這也是PHP的一個弱點。
JSP:
1.將內容的產生和顯示進行分離
使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來產生頁面上的動態內容。產生內容的邏輯被封裝在標識和JavaBeans群組件中,並且捆綁在小腳本中,所有的腳本在伺服器端執行。如果核心邏輯被封裝在標識和Beans中,那麼其它人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生。在伺服器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,通過存取JavaBeans群組件,使用JDBC技術存取資料庫),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於作者保護自己的代碼,而又保證任何基於HTML的Web瀏覽器的完全可用性。
2.強調可重用的群組件
絕大多數JSP頁面依賴於可重用且跨平台的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程序所要求的更為復雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者用戶團體所使用。基於組件的方法加速了總體開發過程,並且使得各種群組織在他們現有的技能和優化結果的開發努力中得到平衡。
3.採用標識簡化頁面開發
Web頁面開發人員不會都是熟悉腳本語言的程序設計人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所需要的。標準的JSP標識能夠存取和實例化JavaBeans組件,設定或者檢索群組件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能。通過開發定製化標識庫,JSP技術是可以擴展的。今後,第三方開發人員和其它人員可以為常用功能建立自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。 JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,並且擴展到能夠支持企業級的分布式應用。作為採用Java技術家族的一部分,以及Java 2EE的一個成員,JSP技術能夠支持高度復雜的基於Web的應用。由於JSP頁面的內置腳本語言是基於Java程序設計語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。作為Java平台的一部分,JSP擁有Java程序設計語言「一次編寫,各處執行」的特點。隨著越來越多的供貨商將JSP支持加入到他們的產品中,您可以使用自己所選擇的伺服器和工具,修改工具或伺服器並不影響目前的應用。
應用范圍:
ASP是Microsoft開發的動態網頁語言,也繼承了微軟產品的一貫傳統,只能執行於微軟的伺服器產品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的組件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的群組合來擴充,Unix下的COM實現起來非常困難。
PHP3可在Windows,Unix,Linux的Web伺服器上正常執行,還支持IIS,Apache等一般的Web伺服器,用戶更換平台時,無需變換PHP3代碼,可即拿即用。
JSP同PHP3類似,幾乎可以執行於所有平台。如Win NT,Linux,Unix。在NT下IIS通過一個外加伺服器,例如JRUN或者ServletExec,就能支持JSP。知名的Web伺服器Apache已經能夠支持JSP。由於Apache廣泛應用在NT、Unix和Linux上,因此JSP有更廣泛的執行平台。雖然現在NT操作系統佔了很大的市場份額,但是在伺服器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小。從一個平台移植到另外一個平台,JSP和JavaBean甚至不用重新編譯,因為Java位元組碼都是標準的與平台無關的。
性能比較:
有人做過試驗,對這三種語言分別做迴圈性能測試及存取Oracle資料庫測試。在循環性能測試中,JSP只用了令人吃驚的四秒鍾就結束了20000*20000的迴圈。而ASP、PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒和84秒。(參考PHPLIB)。 資料庫測試中,三者分別對 Oracle 8 進行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP則 需要 73 秒。
前景分析:
目前在國內PHP與ASP應用最為廣泛。而JSP由於是一種較新的技術,國內採用的較少。但在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站,多採用JSP。採用PHP的網站如新浪網(sina)、中國人(Chinaren)等,但由於PHP本身存在的一些缺點,使得它不適合應用於大型電子商務站點,而更適合一些小型的商業站點。首先,PHP缺乏規模支持。其次,缺乏多層結構支持。對於大負荷站點,解決方法只有一個:分布計算。資料庫、應用邏輯層、表示邏輯層彼此分開,而且同層也可以根據流量分開,群組成二維數組。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的資料庫介面支持不統一,這就使得它不適合運用在電子商務中。
ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規模支持,通過DCOM和Transcation Server獲得結構支持;JSP可以通過SUN Java的Java Class和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。三者中,JSP應該是未來發展的趨勢。世界上一些大的電子商務解決方案提供商都採用JSP/Servlet。比較出名的如IBM的E-business,它的核心是採用JSP/Servlet的Web Sphere。它們都是通過CGI來提供支持的。但去年10月後它推出了Enfinity,一個採用JSP/Servlet的電子商務Application Server,而且聲言不再開發傳統軟體。
總之,ASP,PHP,JSP三者都有相當數量的支持者,由此也可以看出三者各有所長。正在學習或使用動態頁面的朋友可根據三者的特點選擇一種適合自己的語言。
㈥ 你好,不好意思,還有個公式同花順測試時出現「行51少)」,能否解疑謝謝!
MA15:=EMA(CLOSE,21);
STICKLINE((MA15>REF(MA15,1)),MA15,MA15,9,0),Linethick2,CoLor0000FF;
STICKLINE((MA15 ??? 這行代碼少了請補充
㈦ 網站源碼與SEO有什麼關系
上海獻峰 網路眾所周知,目前我們建站已經有越來越多的開源程序了,像CMS里有織夢、帝國、PHP168等,論壇用的Discuz、PHPWIND等,博客里的Zblog、wordpss等等吧,這些都提供用戶免費下載使用,這只是幾款比較知名的程序,當然還有很多不知名的程序,對我們草根站長而言,目前的這些開源程序已經足夠我們選擇和使用了,究竟選擇什麼樣的源碼建站,目前多數站長主要考慮兩點:
一是從SEO的角度出發,看源碼是否便於優化收錄,是否支持生成靜態;
二,考慮源碼日後的可擴展性及安全性,網站做大後,日後能否很好的擴展升級。
從目前市場上的用戶最多的幾大源碼程序來看,源碼的安全性做得都比較不錯,源碼開發者都能夠及時對程序進行升級打補,草根站長基本沒什麼後顧之憂;從SEO的角度來看,靜態一直被共認為最適合建站的,懂SEO的站長首選可以生成靜態的源碼。今天青島SEO結合自身經歷談談網站源碼與SEO之間的關系,不一定對,純屬個人看法。
這里我先直接表明我的立場:「到底選擇什麼樣的源碼?我認為適合的才是最好的!」為什麼這么說,有很多站長,特別是接觸網站不久的新站長,他們認為只有可以生成靜態的網站才能排名好,收錄多,便於優化,才會受到搜索引擎的青睞,這裡面最有代表性的源碼是就是織夢CMS,現在用織夢建站的站長最多。但我不敢苟同這些站長的想法,這里並非說織夢CMS不好,而是織夢CMS確實很好,不是我一個人說好,很多人都說好,因為我現在也在用。
但是我要從SEO的角度告訴一些站長,靜態與非靜態不是排名好,收錄多的主要因素,有時看到一款源碼感覺風格真不錯,但是仔細一看,可惜源碼是ASP,不支持生成靜態,心想如果能夠跟織夢一樣生成靜態我就用這個程序了,只可惜……。站長在找源碼建站時碰到這個問題的站長估計不少,在我看來,我選擇織夢的最主要原因是織夢的可擴展性更好一些,是不是能夠生成靜態我真不在乎。個人從事SEO也有兩年時間了,經手給別人SEO過的網站和自己搞的網站也有不少了,我發現,其中很多網站也不是什麼知名源碼,更不是什麼靜態,但是網站收錄,排名都很好,網站功能也很簡單,看著很漂亮,等等~拿我最早的一個網站來說吧,使用的是老Y的CMS程序,後期自己簡單的改了改,老Y程序的特點是簡單易用,ASP的偽靜態,當初選擇這個程序的時候就是感覺使用簡單,因為那時不懂代碼,更不懂什麼SEO,只會添加個文章,所以就用了這個程序,到現在我的網站排名也很好,收錄也不少,而且發帖收錄非常快,哪怕我一下子從別處復制來10篇文章,10分鍾之內搜索引擎全部通吃,毫不誇張。
也許你會說,我用的一款靜態的源碼也沒這么好,難道所謂的靜態源碼對與SEO就是浮雲?我今天發帖,最快也才要明天才會收錄或者隔天收錄。同樣我自己現在的就是織夢的程序,今天發帖,也是明天或者過好多天才會收錄。由此,我們看到,網站收錄與否,跟源碼沒多大直接關系,網站排名高低也沒有多大關系,主要原因取決於網站的綜合權重,建站時間、外鏈數量、原創內容、用戶體驗等,都對網站權重的起著重要作用,所以,草根站長選擇源碼建站,不要再迫於找不到源碼而去大量浪費我們的寶貴時間,也不要多花冤枉錢非要找人把一個動態程序改成靜態,很多網站生成靜態反而麻煩,每次都要點生成,碰到修改內容還要再生成,記住一點,只要滿足我們使用的功能要求,自己感覺漂亮,就已經足夠了。
說SEO與網站源碼一點關系沒有肯定很多站長向我拋磚頭,SEO的優化確實跟源碼程序有一點關系,但是絕不是跟一些站長偏執認為關系那麼大,不能靜態的網站就不是好網站,就不會有好排名這是十分錯誤的!還是那句話,適合你的就是最好的!一切取決你對網站精心呵護,努力培養網站的權重吧。
希望採納不足可追問
㈧ 如何用Python一門語言通吃高性能並發,GPU計算和深度學習
第一個就是並發本身所帶來的開銷即新開處理線程、關閉處理線程、多個處理線程時間片輪轉所帶來的開銷。
實際上對於一些邏輯不那麼復雜的場景來說這些開銷甚至比真正的處理邏輯部分代碼的開銷更大。所以我們決定採用基於協程的並發方式,即服務進程只有一個(單cpu)所有的請求數據都由這個服務進程內部來維護,同時服務進程自行調度不同請求的處理順序,這樣避免了傳統多線程並發方式新建、銷毀以及系統調度處理線程的開銷。基於這樣的考慮我們選擇了基於Tornado框架實現api服務的開發。Tornado的實現非常簡潔明了,使用python的生成器作為協程,利用IOLoop實現了調度隊列。
第二個問題是資料庫的性能,這里說的資料庫包括MongoDB和Redis,我這里分開講。
先講MongoDB的問題,MongoDB主要存儲不同的用戶對於驗證的不同設置,比如該顯示什麼樣的圖片。
一開始每次驗證請求都會查詢MongoDB,當時我們的MongoDB是純內存的,同時三台機器組成一個復制集,這樣的組合大概能穩定承載八九千的qps,後來隨著我們驗證量越來越大,這個承載能力逐漸就成為了我們的瓶頸。
為了徹底搞定這個問題,我們提出了最極端的解決方案,乾脆直接把資料庫中的數據完全緩存到服務進程里定期批量更新,這樣查詢的開銷將大大降低。但是因為我們用的是Python,由於GIL的存在,在8核伺服器上會fork出來8個服務進程,進程之間不像線程那麼方便,所以我們基於mmap自己寫了一套夥伴演算法構建了一個跨進程共享緩存。自從這套緩存上線之後,Mongodb的負載幾乎變成了零。
說完了MongoDB再說Redis的問題,Redis代碼簡潔、數據結構豐富、性能強大,唯一的問題是作為一個單進程程序,終究性能是有上限的。
雖然今年Redis發布了官方的集群版本,但是經過我們的測試,認為這套分布式方案的故障恢復時間不夠優秀並且運維成本較高。在Redis官方集群方案面世之前,開源世界有不少proxy方案,比如Twtter的TwemProxy和豌豆莢的Codis。這兩種方案測試完之後給我們的感覺TwemProxy運維還是比較麻煩,Codis使用起來讓人非常心曠神怡,無論是修改配置還是擴容都可以在配置頁面上完成,並且性能也還算不錯,但無奈當時Codis還有比較嚴重的BUG只能放棄之。
幾乎嘗試過各種方案之後,我們還是下決心自己實現一套分布式方案,目的是高度貼合我們的需求並且運維成本要低、擴容要方便、故障切換要快最重要的是數據冗餘一定要做好。
基於上面的考慮,我們確定基於客戶端的分布式方案,通過zookeeper來同步狀態保證高可用。具體來說,我們修改Redis源碼,使其向zookeeper注冊,客戶端由zookeeper上獲取Redis伺服器集群信息並根據統一的一致性哈希演算法來計算數據應該存儲在哪台Redis上,並在哈希環的下一台Redis上寫入一份冗餘數據,當讀取原始數據失敗時可以立即嘗試讀取冗餘數據而不會造成服務中斷。
㈨ 請高手幫我做一個通信達公式,拜謝!
N:=22;
JJ:=(HIGH+LOW+CLOSE)/3;
QJ0:=VOL/IF(HIGH=LOW,4,HIGH-LOW);
QJ1:=IF(CAPITAL=0,QJ0*(JJ-MIN(CLOSE,OPEN)),QJ0*IF(HIGH=LOW,1,(MIN(OPEN,CLOSE)-LOW)));
QJ2:=IF(CAPITAL=0,QJ0*(MIN(OPEN,CLOSE)-LOW),QJ0*IF(HIGH=LOW,1,(JJ-MIN(CLOSE,OPEN))));
QJ3:=IF(CAPITAL=0,QJ0*(HIGH-MAX(OPEN,CLOSE)),QJ0*IF(HIGH=LOW,1,(HIGH-MAX(OPEN,CLOSE))));
QJ4:=IF(CAPITAL=0,QJ0*(MAX(CLOSE,OPEN)-JJ),QJ0*IF(HIGH=LOW,1,(MAX(CLOSE,OPEN)-JJ)));
DDY:=((QJ2+QJ4)-(QJ1+QJ3))/IF(CAPITAL=0,1000000,10000),COLOR00DD00,LINETHICK;
通吃:DDY/VOL*1000;
㈩ linux有哪些發展方向,望前輩們指條道
1、Linux嵌入式開發
這個就是通過移植Linux到硬體平台上,然後寫一些應用程序。這個相對來說簡單不少,也好入門,薪水也行,但是工資的成長上限比較低,軟硬通吃之後才能高薪,也好自己單干。
2、Linux運維
Linux運維工作很火,一般大公司運維還要懂內核以及C編程之類的,但是小公司完全就是打雜的。也用不到多少開發的知識,如果說開發是DPS,運維更像是輔助加血什麼的,這個可以報個班考個RHCE來入行,薪水起點應該是最低的吧。
3、Linux伺服器開發
如果是用C/C++之類的話,要求也很高。因為互聯網行業才人流動性相對大,所以工資可觀,特別是對優化延遲什麼的了解很深入的,發展前景是最好的。這個招聘量較少,但相對內核來說多些,專業知識要求比較全面,並且深入研究還有分布式、並行演算法、集群之類的方向,想要發展的好幾乎CS的基礎科目都要有非常深入的理解。
4、Linux內核開發
這里基本都是比較有難度的,像華為、小米這種的硬體公司一般有這個職位,工資也是很高的,知識相對單一,但是操作系統底層的硬體更新也比較快,操作系統理論也很靈活,深入不容易,主要研究的方向可能和職位也比較相關。
5、雲運維
實際上也是運維的一種。對硬體的安裝的要求應該比較少,對原理性的東西也要求比較高,我記得前些天還在培訓機構上看到有紅帽雲認證的,可以去考一個,小公司對雲還是有需求的,工資應該比3高點,具體我也不清楚。
6、雲平台開發
現在大的雲平台基本都是基於Linux的KVM的,這個也是軟硬兼修,並且還要求掌握虛擬化技術,公司也少。國內主要有網路、華為、阿里、騰訊一些大公司在搞,門檻高,需要的知識也比較多,大公司,自然待遇也不錯。