導航:首頁 > 源碼編譯 > 安全編譯選項對性能影響

安全編譯選項對性能影響

發布時間:2022-08-05 09:17:34

㈠ 不同編譯器的x265性能是否有差距

不同編譯器的x265性能是有差距的:
MSVC系列的編譯器都是渣優化,icc是針對跑分優化的,做不得數。目前來看gcc -O3的優化是最好的。
x265默認使用gcc編譯就開了-O3選項。

㈡ 電腦性能影響vsc編譯速度嗎

當然影響了,編譯也是一種計算任務,規模大的話計算量還不小
為什麼會問這種問題?

㈢ gcc 編譯帶調試信息會影響性能嗎

gcc編譯加-d加入調試信息,會盡可能載入所有庫的符號表,調用函數會盡可能調用debug模式(如果有),去掉所有編譯優化,所以肯定是有點影響性能的

㈣ 應用編譯優化有什麼用

應用編譯優化的作用是:提高運行能力因為程序優化前,有3個變數需要3個寄存器,一次乘法運算。程序優化後,只有1個變數需要一個寄存器,沒有乘法運算。

並且這個優化看起來很微不足道,但實際上用途很廣。為了程序的可讀性和可維護性,大多數程序員應該還是會選用第一種方式。

寫3行程序而不是直接甩下一行int ticks = 491520讓後來讀程序的人摸不到頭腦。有了編譯器的優化,程序員既可以寫出易讀的程序又不必擔心性能受影響。

尤其是在嵌入式領域,很多低端晶元根本就沒有硬體乘法器,如果程序不做上述優化可能這3行代碼需要幾十個cycle,優化過後一個cycle就搞定。

應用編譯優化的級別:

第一級:代碼調整。

代碼調整是一種局部的思維方式;基本上不觸及演算法層級;它面向的是代碼,而不是問題; 所以:語句調整,用匯編重寫、指令調整、換一種語言實現、換一個編譯器、循環展開、參數傳遞優化等都屬於這一級。

第二級:新的視角。

新的視角強調的重點是針對問題的演算法;即選擇和構造適合於問題的演算法。

第三級:表驅動狀態機。

將問題抽象為另一種等價的數學模型或假想機器模型,比如構造出某種表驅動狀態機;這一級其實是第二級的延伸,只是產生的效果更加明顯,但它有其本身的特點。

㈤ 使用安全模式會對電腦性能有影響嗎

沒影響
仔細看下邊就知道了

經常使用電腦的人可能都聽說過,當電腦出了故障時,Windows會提供一個名為「安全模式」的平台,在這里用戶能解決很多問題--不管是硬體(驅動)還是軟體的。然而你會使用這個安全模式么?今天我們就來帶您認識一下它的真面目。

初識安全模式

要進入安全模式,只要在啟動時不停地按F8,就會出現選項菜單,再用鍵盤上的上下游標鍵進行選擇即可進入不同的啟動模式。選項菜單包括了以下幾個:

1.安全模式

只使用基本文件和驅動程序。如滑鼠(USB串列滑鼠除外)、監視器、鍵盤、硬碟、基本視頻、默認系統服務等,但無網路連接。

如果採用安全模式也不能成功啟動計算機,則可能需要使用恢復控制台功能來修復系統。

2.帶網路連接的安全模式

在普通安全模式的基礎上增加了網路連接。但有些網路程序可能無法正常運行,如MSN等,還有很多自啟動的應用程序不會自動載入,如防火牆、殺毒軟體等。所以在這種模式下一定不要忘記手動載入,否則惡意程序等可能會入侵在你修復電腦的過程中。

3.帶命令行提示符的安全模式

只使用基本的文件和驅動程序來啟動,在登錄之後,屏幕上顯示命令提示符,而非Windows圖形界面。

說明:在這種模式下,如果你不小心關閉了命令提示符窗口,屏幕會全黑。可按下組合鍵Ctrl+Alt+Del,調出「任務管理器」,單擊「新任務」,再在彈出對話框的「運行」後輸入「C:\WINDOWS\explorer.exe」,可馬上啟動Windows XP的圖形界面,與上述三種安全模式下的界面完全相同。如果輸入「c:\windows\system32\cmd」也能再次打開命令提示符窗口。事實上,在其它的安全模式甚至正常啟動時也可通過這種方法來啟動命令提示符窗口。

4.啟用啟動日誌

以普通的安全模式啟動,同時將由系統載入(或沒有載入)的所有驅動程序和服務記錄到一個文本文件中。該文件稱為 ntbtlog.txt,它位於 %windir% (默認為c:\windows\)目錄中。啟動日誌對於確定系統啟動問題的准確原因很有用。

5.啟用VGA模式

利用基本VGA驅動程序啟動。當安裝了使Windows不能正常啟動的新視頻卡驅動程序時,這種模式十分有用。事實上,不管以哪種形式的安全模式啟動,它總是使用基本的視頻驅動程序。因此,在這些模式下,屏幕的解析度為640×480且不能改動。但可重新安裝驅動程序。

6.最後一次正確的配置

使用Windows上一次關閉時所保存的注冊表信息和驅動程序來啟動 。最後一次成功啟動以來所作的任何更改將丟失。因此一般只在配置不對(主要是軟體配置)的情況下,才使用最後一次正確的配置。但是它不能解決由於驅動程序或文件被損壞或丟失所導致的問題。

7.目錄服務恢復模式

這是針對伺服器操作系統的,並只用於恢復域控制器上的SYSVOL目錄和Active Directory目錄服務。

8.調試模式

啟動時通過串列電纜將調試信息發送到另一台計算機。

如果正在或已經使用遠程安裝服務在您的計算機上安裝 Windows,則您可以看到與使用遠程安裝服務還原或恢復系統相關的附加選項。

現實應用

1.筆者過去用的是一款舊顯示器,又是初學者,初學者最愛乾的是什麼,換點牆紙,設一下解析度也覺得很有成就感,沒想到誤將解析度和刷新率調得太高,下次啟動時屏幕花屏,害得的重新安裝了操作系統才算了事。

現在想起來那時也真的傻瓜可愛,只要將其重啟到安全模式(前四種模式都行)下,刪除顯卡驅動程序,再重啟電腦即可,重啟(正常啟動)時,系統會自動掃描顯卡並安裝驅動程序,屏幕即可恢復正常顯示。

還有些問題也可用這種方法來處理,比如Windows XP會自動識別硬體並安裝驅動程序,但有時總是老眼昏花,而且在設備管理器下不會顯示出錯信息。但就是工作不正常,如上不了網(網卡驅動有錯)、屏幕顯示不對(顯卡驅動有錯)等,也可在安全模式重新安裝驅動程序。

2.揪出惡意的自啟動程序或服務

如果電腦出現一些莫明其妙的錯誤,比如上不了網,按常規思路又查不出問題,可啟動到帶網路連接的安全模式下看看,如果在這里能上,則說明是某些自啟動程序或服務影響了網路的正常連接。

可在帶網路連接的安全模式下,用帶重定向的命令提示符工具TaskList >d:\Anquan.txt將當時的進程記錄到D:盤根目錄下的文本文件 Anquan.txt中。接著,以正常的方式啟動電腦,將Anquan.txt中記錄到的進程與此時的進程進行比較,你會發現此時的進程要多得多,請逐個結束多出來的進程,並檢查網路連接是否正常。如果結束到某一進程時網路連接正常了,則說明就是剛結束的進程就是罪魁禍首。查出後,可刪除與進程相關的可執行文件。但還要注意的是,由於它是自動運行的,強行刪除後,可能會引起啟動時報「找不到某文件」的錯誤,還得將其與自啟動有關的設置全部清除,包括「系統配置實用程序」的「啟動」、「Win.ini」下的內容、注冊表下的內容、啟動腳本下的內容、「開始」菜單「啟動」下的內容等。

3.調整分區

有一次,筆者帶著本本兒出差,途中想處理一下下車即用的報表文件,可本本兒偏不爭氣,啟動時報分區錯誤。天啊,出門在外的,又沒帶任何工具軟體,好在天無絕人之路,還能啟動到安全模式下——有法了,命令行工具Diskpart能勝任分區魔術師的一切工作(可能還少有朋友聽說吧)。Diskpart功能非常強大,它工作於一個集成的環境,輸入Diskpart後,顯示圖1所示的專用提示符即Diskpart>(注意:這不是一個路徑),在這一環境下可輸入很多與之相關的同時也是它的專用子命令。下面就來演示分區的擴容功能。

說明在先:以下的操作是在台式機上記錄下來的。

①啟動到帶命令提示符的安全模式下,輸入命令Diskpart。再輸入list partition 顯示一下分區,顯然,其中有兩個主分區、兩個擴展分區。

②輸入「Select Parttition 3」使第3分區(5004MB的那個),使該分區具有焦點屬性。再輸入「Delete Partition」即可刪除該分區。請將圖3第1、2兩個「List partition」命令後的值進行比較,不難看出,原分區3確實已被刪除了。

③輸入「Select partition 1」使其具有焦點屬性,再輸入「Extend」,剛才被刪除分區所空出來的末分配空間就能自動添加到第1分區中去。

為分區擴容,這可是分區魔術師的專利,「diskpart」也能實現,看來,Windows server 2003不支持分區魔術師是有道理的。再輸入「List partition」可觀察到第1個分區的容量變化情況。

說明:將帶有焦點的分區擴展為最鄰近的未分配空間時。對於普通分區,未分配的空間必須在同一磁碟上,並且必須接著帶有焦點的分區。

如果要被擴容的分區是NTFS格式,擴容後不會丟失任何數據。如果是非 NTFS 的文件系統格式,此命令就會失敗,但不會對分區作任何更改也不會破壞數據。不能擴展當前系統分區或啟動分區,也不能對包含頁面文件的分區進行擴容。從圖中可看出,我的電腦中有兩個主分區,分區5才是活動分區。不然,不能對分區1進行擴容操作。

語法:extend [size=n]

參數說明: size=n :添加到當前分區的空間大小 (MB)。如果不指定大小,磁碟就擴展為佔用所有最鄰近的未分配空間。

④不管對硬碟分區做了什麼樣的改動,包括創建、刪除、擴容等,都用不著重新啟動電腦即可生效(這是分區魔術師不能做到的),但在「我的電腦」卻看不到這些分區,這是為什麼呢,原來,還沒為其指定驅動器號(也就是盤符),怎樣指定盤符呢?下面以為第一個分區指定盤符為例進行說明。

使第1個分區具有焦點屬性,再輸入命令「Assign」,Diskpart就會自動為其分配一個。當然也可用命令「Assign Letter=X」來手動指定,手動指定時,不能與已存在的盤符如C等相同。經過這樣的處理後,就能在「我的電腦」下查看到這些分區了。

⑤將分區5設為活動分區,先用Select Parttition 5使其具有焦點屬性再用Active激活即可。最後輸入Exit,退出Diskpart集成環境,讓電腦自動重啟。

說明:如果用慣了DiskPart,你就會覺得它的設計很符合人們的思維習慣,一般是先指定焦點,再進行操作,操作過程中還可隨顯示分區狀態以便掌握進度。輸入Help可查看到所有的子命令,輸入有錯時,它還會自動列出子命令列表及簡要說明,將你引導到正路上來。另外,安裝Windows 2003後,大家最熟悉的分區魔術師(非伺服器版)不能正常運行,使用Diskpart確實是一個不錯的選擇。

如前所述,在Diskpart下進行任何操作前都必須指定焦點,即指明對哪一對象進行操作,這一方面使的我的操作邏輯清楚,但另一方面,如果對誤指定了焦點又執行了破壞性的命令,如刪除分區等,會造成無可挽回的損失。所以,請隨時用List命令查看各分區狀態,焦點分區前有一個星號(*)標志。

此外,你還可以藉助安全模式來完成病毒的清除工作。比如有的殺毒軟體能報告病毒但卻不能清除甚至隔離、刪除,遇到這種情況,可啟動到安全模式下嘗試刪除這些病毒文件。當然,這里我們也只是介紹了一些比較常見的安全模式用途,算是拋磚引玉吧,希望各位能夠在實際的電腦使用中,逐步體驗其更多的便捷之處。

linux 下,編譯時啟用-g選項,會不會影響運行速度。發布版本時,要不要啟用-g選項

加上-g後肯定會影響運行效率的,而且包含代碼的很多信息,一來為了提高效率,二是防止被別人很容易的反編譯,發布時使用strip去除debug信息。

㈦ 中如下的編譯選項什麼意思

1.編譯目標文件
icc -c -offload-attribute-target=mic -O3 -openmp -std=c99 -DMKL_ILP64 -I/opt/intel/composer_xe_2013_sp1.1.106/mkl/include fft.c -o fft_new.o
2.連接產生可執行文件
icc fft_new.o -openmp -Wl,--start-group /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/libmkl_intel_ilp64.a /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/libmkl_intel_thread.a /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -Ip-offload-option,mic,compiler,"-Wl,--start-group /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/mic/libmkl_intel_ilp64.a /opt/intel/composer_xe_2013mkl/lib/mic/libmkl_intel_thread.a /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/mic/libmkl_core.a -Wl,--end-group" -o fft_new.out
這里的東西較多,看上去比較復雜。
1.對於第一步,編譯出目標文件。這裡面的幾個編譯選項:
-O3 :表示最大可能優化級別。各種循環優化都執行了,並且各種文件級性質也用來改善性能
-openmp:採用了openmp並行編程
-std=c99:ANSI C是89年成為了標准,被ISO認證。之後99年ISO更新了新的C標准。所以-std用來指明編譯的C標准。在某些情況下,如果使用GCC,可能在有沖突的時候使用其他標准,比如:-std=gnu89
-DMKL_ILP64:這個是intel提供的編譯選項,主要是一個平台的指示。
-I:指定頭文件目錄
-o:重命名。
2.對於第二步,鏈接過程。其中幾個編譯選項:
-openmp:同上
-Wl:Wl選項告訴編譯器將後面的參數傳遞給鏈接器。
--start-group 和--stop-group:庫文件參數傳遞的開始和結束。
--offload-option,mic:使用offload方式使用協處理器進行運算
轉自CSDN社區beglorious的專欄

㈧ 編譯器如何危及應用程序的安全

對於編譯器如何將人類可讀的代碼翻譯成機器運行的機器碼,大多數程序員通常只有大概的概念。在編譯過程中,編譯器會對代碼進行優化,使其能高效的運行。有的時候,編譯器在優化上面走的太遠了,它甚至移除了本不應該移除的代碼,導致應用程序更加脆弱。
MIT人工智慧和計算機科學實驗室的四位研究人員調查了(PDF) 不穩定優化(optimization-unstable)代碼的問題——編譯器移除的包含未定義行為的代碼。所謂的未定義行為包括了除以0,空指針間接 引用和緩沖溢出等。在某些情況下,編譯器完整移除未定義行為代碼可能會導致程序出現安全弱點。
研究人員開發了一個靜態檢查器STACK去識別不穩定的 C/C++代碼,他們在足球平台出租測試的系統中發現上百個新bug:Linux內核發現32個bug,Mozilla發現3個,Postgres 9個和Python 5個。STACK掃描了Debian Wheezy軟體包倉庫8575個含有C/C++代碼的軟體包,發現其中3471個至少包含一個不穩定的代碼。研究人員認為這是一個非常普遍的問題。

㈨ win7有何優越性能

你好,Windows 7 使基本操作變得前所未有的簡單。藉助家庭組,您可以與家裡另外運行 Windows 7 的電腦輕松共享音樂、文檔、列印機及任何其他內容。 Windows Search 免去從眾多文件夾和子文件夾中查找資料的繁瑣。更優的任務欄預覽允許您更好地查看正在運行的任務,並且只需單擊一下右鍵,Jump List 就會為您列出最近訪問的文件。 如果電腦不能按照您希望的方式順暢運行,不需要您的電腦有很多功能就能解決。Windows 7 旨在幫助您的電腦更快速地休眠和恢復。 Windows 7 支持最先進的電腦硬體,例如 64 位計算及多核處理器;同時經過改善的內存使用率可幫助硬體充分發揮性能潛力。 一旦您的電腦變得更快、更簡單,您就會發現一些很酷的新功能。例如:不管在家中、辦公室或是咖啡店,您只需雙擊滑鼠就可以連接到網路;並且藉助 Windows 觸控功能(以及合適的硬體),您很快就可以用手指翻閱文件、處理圖片甚至「畫圖」。 希望我的回答能夠幫助你。

閱讀全文

與安全編譯選項對性能影響相關的資料

熱點內容
安卓軟體請求超時怎麼辦 瀏覽:476
androidapp調用另一個app 瀏覽:621
數控銑床法蘭克子程序編程 瀏覽:173
linux打包命令targz 瀏覽:996
抖音app是哪個 瀏覽:407
蘋果app怎麼上架 瀏覽:255
NA伺服器地址 瀏覽:427
我的世界如何初始化伺服器 瀏覽:97
哪個手機app天氣預報最准 瀏覽:752
怎樣把視頻壓縮至25m 瀏覽:570
vivox27文件夾怎麼改變 瀏覽:727
新手玩狼人殺用什麼app 瀏覽:615
pdf在線查看 瀏覽:954
安卓tv90如何關閉後台 瀏覽:683
php讀取word亂碼 瀏覽:755
minicom源碼 瀏覽:1001
海爾冷櫃壓縮機 瀏覽:416
聯通伺服器如何調試信號 瀏覽:136
stata新命令 瀏覽:941
單調棧演算法python 瀏覽:606