當前位置:首頁 » 編程軟體 » 編譯速度測試

編譯速度測試

發布時間: 2023-01-18 12:21:48

編譯一段代碼的速度和CPU的線程核心和代碼的速度有關嗎如果編譯一個QQ大小的代碼需要多長時間啊

1cpu的速度跟核心數量有關嗎?是否數量越多就越快呢?只有在同一家族的CPU中進行比較,核心數量、主頻與CPU的運行速度才有正比關系,還有影響的因素是2、3級緩存的大小。核心版本和工藝的升級也有影響。一般在同一家族的CPU中,核心越多、主頻越高、緩存越多、版本越新的CPU越快。比如AMDAthlonIIX2250肯定要比AMDAthlonIIX2240要快,但是不是也一定強於主頻、緩存、核心數都與X2240差不多的IntelPentiumE6300呢?那就不能武斷的說了。需要用各種測試軟體去驗證。2同核心數目,同主頻,同二級緩存哪個快?主板配cpu是看針腳和前端匯流排,和cpu的二級緩存無關,865的主板如果是478介面的,那就支持P42.8E和P43.2C,何況主板和cpu前端匯流排都是800mhz,完美支持兩個比當然是P43.2C好了,雖然P42.8e是1024的二級緩存,但核心是Prescott內核,和A的核心一樣,發熱量大,功耗高,而C的核心是NORTHWOOD核心,比Prescott好

② 如何提高ios 靜態庫的編譯速度

iPhone何打包通用靜態庫文件(模擬器真機都用)

1.先必須命令:
~/Library目錄lion默認隱藏便用命令使其顯示:
chflags nohidden ~/Library
想再讓其隱藏:
chflags hidden ~/Library

2.靜態庫工程建立:Xcode New新project選擇IOS面Framework&Library面Cocoa Touch Static Library直接next建立MtimeLibrary工程(面功能要關注簡單 2數相加)
?

3.工程建立刪除默認.h .m 文件自創建CountNumbers..h CountNumbers..m文件圖:

4.OK選擇iPhone 5.1Simulator ,Command + B 編譯我Procts面找我編譯模擬器運行libMtimeLibrary.a文件,選擇真機(圖)再編譯真機運行libMtimeLibrary.a庫

?

5. libMtimeLibrary.a 右鍵 Open in Finder找libMtimeLibrary.a所路徑、面我新建項目添加.a文件測試

打終端:輸入命令(路徑根據自決定)
cd /Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/

Procts目錄ls 看:
?

再輸入命令: cd Debug-iphonesimulator/

通面命令查看libMtimeLibrary.a信息
命令:lipo -info libMtimeLibrary.a
顯示:
cashmatoMacBook-Pro:Debug-iphonesimulator cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: i386
i386mac架構

再輸入面命令:
cd ../

cd Debug-iphoneos/

繼續通命令查看 lipo -info libMtimeLibrary.a
顯示:
cashmatoMacBook-Pro:Debug-iphoneos cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: armv7
armv7iOSjia'ge架構

我明白真機使用能模擬器使用吧

我要做要讓libMtimeLibrary.a文件同i386armv7信息通用靜態庫文件

6. 新建MtimeLibraryDemo應用真機或者模擬器libMtimeLibrary.a CountNumbers.h文件引入進圖:
?

添加CountNumbers.h文件需要調用類面調用libMtimeLibrary.a面

//
// AppDelegate.m
// MtimeLibraryDemo
//
// Created by cash on 12-3-23.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import "AppDelegate.h"
#import "CountNumbers.h"
@implementation AppDelegate

@synthesize window = _window;

- (void)dealloc
{
[_window release];
[super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.

CountNumbers *cn = [[CountNumbers alloc] init];
int count = [cn addTwoNumbers:10 :20];
NSLog(@"count:%d",count);

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

7. OK編譯運行應用程序 錯誤篇文檔關鍵.

?

我找剛才真機模擬器libMtimeLibrary.a目錄
debug-iphoneos面基於arm6 arm7編譯庫文件debug-iphonesimulator文件夾面基於i386編譯文件

?

10. 關鍵步驟:

通lipo -create 命令合並2靜態庫文件(-output 面/Users/cash/Desktop/test/libMtimeLibrary.a 合並路徑文件名字)

lipo -create "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphonesimulator/libMtimeLibrary.a" "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphoneos/libMtimeLibrary.a" -output "/Users/cash/Desktop/test/libMtimeLibrary.a"


通命令 lipo -info libMtimeLibrary.a 知道文件已經i386armv7信息
cashmatoMacBook-Pro:test cash$ lipo -info libMtimeLibrary.a
Architectures in the fat file: libMtimeLibrary.a are: i386 armv7
cashmatoMacBook-Pro:test cash$
w

③ 從 Webpack 到 Snowpack, 編譯速度提升十倍以上——TRPG Engine遷移小記

原文地址: http://moonrailgun.com/posts/74598ef5/

TRPG Engine 經過長久以來的迭代,項目已經顯得非常臃腫了。數分鍾的全量編譯, 每次按下保存都會觸發一次 10s 1m 不等的增量編譯讓我苦不堪言, 龐大的依賴使其每一次編譯都會涉及很多文件和很多包,長時的編譯時間大大降低了開發效率與迭代速度。

經過一段時間的考察,我選擇了 Snowpack 作為解決方案。與 Webpack 不同的是,除了第一次的全量編譯以外, Snowpack 的增量編譯不會涉及到龐大的 node_moles 文件夾, 准確來說只會編譯變更文件本身。甚至於如果沒有對依賴進行變更,下次的全量編譯會直接動用之前編譯的文件緩存,不需要花時間等待 node_moles 的編譯。

為什麼會這么快?這是由於 Snowpack 本身的實現與設計哲學有關的。相比 Webpack , Snowpack 利用了現代瀏覽器的本身的 mole 系統,跳過復雜的模型之間的組織編譯過程而只關注於變更文件本身的編譯,這樣當然快了。

拿 Snowpack 官方的一張圖來說:

snowpack 的最我譯單位是文件,而 webpack 的最我譯單位為 chunk , 而 chunk 還需要額外的計算, 不論是編譯部分還是編譯後的組裝部分。snowpack的設計邏輯天生決定了她的速度。

優化前(使用 webpack ):

全量編譯:

增量編譯:

全量請求用時:

優化後(使用 snowpack ):

全量編譯:

增量編譯:

(看不到編譯用時,但是體感在1s內. 而且該效果在電腦運行其他應用時更加顯著)

全量請求用時:

以上測試是保證電腦在空閑時間,且保存與操作內容為同一文件

該用時已經是平時操作的最快時間,為此我的MBR重啟了一次強制清空了swap空間, 實際表現會更加顯著

因為文件依賴於瀏覽器的耗時,而瀏覽器需要串列請求依賴,因此耗時會更加長

但實際使用中使用snowpack會更加優秀。因為其相比webpack會大大節約電腦資源。在webpack編譯時會佔用大量的電腦資源,會影響到其他操作

TRPG Engine 算是非常經典的 Webpack 應用了, 使用了各種Loader。光通用配置就有250+行,各種優化配置,各種 alias。等等長時間迭代積攢下來的配置,因此毫不意外的會遇到很多問題與坑。

以下是我遇到的問題與解決方案:

Snowpack雖然作為一個新興的打包工具,目前尚不是非常完善, 功能也沒有webpack這樣豐富與齊全。但是它的新的打包設計對於有一定規模的前端應用還是非常優秀的。能極大提升開發效率。不失為一種好的解決方案。當然最後輸出還是需要使用webpack對其進行一定的優化,畢竟原生的mole支持目前瀏覽器的支持度還沒有達到覆蓋一個理想的地步 https://caniuse.com/es6-mole

最後這是我最後提交的 pr

④ 編譯器本身是如何進行測試的

編譯器最重要的性質就是保證語義的正確。比如,從高級語言翻譯到機器指令之後,指令必須正確的表達原來程序的意思。所以一般編譯器測試都包含一些源程序,用來覆蓋可能出現的各種情況。基本的原則是:原來程序的結果 = 編譯後機器指令運行的結果。機器指令運行的結果很容易知道,運行一下就知道了。可是原來程序的結果你怎麼知道呢?
為了解決這個「原來程序語義」的問題,最好是寫一個解釋器,准確無誤的表達原來的代碼的語義。所以我們的要求就是:
高級語言解釋器(源程序) = 機器執行(機器代碼)
由於處理器其實就是一個用來執行機器代碼的解釋器,這里有一個很美好的對稱關系:
interp1(L1) = interp2(L2)
另外還有一個問題,就是編譯器一般需要經過多個轉化步驟(叫做 pass)才能最後編譯為機器指令。比如,
L2 = pass1(source)
L3 = pass2(L2)
L4 = pass3(L3)
Ln = passN(Ln-1)
machine_code = codegen(Ln)
由於源程序經過了很多步驟猜得到最後的機器指令,如果你使用上面的公式,就會出現以下一些情況:
1. 知道結果錯了,但是卻不知道到底是哪一個 pass 錯了。
2. 結果沒有錯,但是中間卻有 pass 實際上是錯的。但是由於之前的 pass 把輸入程序的一些結構給「優化」掉了,所以錯的那個 pass 其實沒能得到觸發錯誤的那個數據結構。所以測試沒能發現錯誤。如果以後前面的那個 pass 被修改,錯誤就會暴露出來。這是非常難以發現的潛伏的危險。
為了防止這些情況出現,一些編譯器(比如 Chez Scheme 和 Kent Dybvig 的課程編譯器)使用了對每一個 pass 進行測試的做法。具體的方法就是為每一個中間語言都寫一個解釋器,把這語言的語義完全的表示出來。這樣我們就需要檢查一組等式:
L2 = pass1(source)
高級語言編譯器(源程序) = interp2(L2) // 測試 pass1 的正確性
L3 = pass2(L2)
interp2(L2) = interp3(L3) // 測試 pass2 的正確性
這樣一來我們就能獨立的判斷每一個 pass 的正確性了。
這些是基本的語義測試原理。另外除了語義,可能還有一些「表面」一些的測試,它們看代碼本身,而不只看它的語義。比如尾遞歸優化的測試應該確保輸出程序的尾遞歸得到正確的處理,等等。這些是語義測試檢查不到的,因為尾遞歸沒有正確處理的程序大部分也能輸出正確的結果。
普通的單元測試方法也可以用來測試一些編譯器里的輔助函數,但那些不是編譯器特有的,所以就不講了。
另外,就像所有測試的局限性一樣,你沒法枚舉所有可能出現的輸入,所以以上的測試方法其實也不能保證編譯器的完全正確。

⑤ 如何加快linux android 的編譯速度

項目越來越大,每次需要重新編譯整個項目都是一件很浪費時間的事情。Research了一下,找到以下可以幫助提高速度的方法,總結一下。
1. 使用tmpfs來代替部分IO讀寫
2.ccache,可以將ccache的緩存文件設置在tmpfs上,但是這樣的話,每次開機後,ccache的緩存文件會丟失
3.distcc,多機器編譯
4.將屏幕輸出列印到內存文件或者/dev/null中,避免終端設備(慢速設備)拖慢速度。

tmpfs
有人說在Windows下用了RAMDisk把一個項目編譯時間從4.5小時減少到了5分鍾,也許這個數字是有點誇張了,不過粗想想,把文件放到內存上做編譯應該是比在磁碟上快多了吧,尤其如果編譯器需要生成很多臨時文件的話。
這個做法的實現成本最低,在Linux中,直接mount一個tmpfs就可以了。而且對所編譯的工程沒有任何要求,也不用改動編譯環境。
mount -t tmpfs tmpfs ~/build -o size=1G
用2.6.32.2的Linux Kernel來測試一下編譯速度:
用物理磁碟:40分16秒
用tmpfs:39分56秒
呃……沒什麼變化。看來編譯慢很大程度上瓶頸並不在IO上面。但對於一個實際項目來說,編譯過程中可能還會有打包等IO密集的操作,所以只要可能,用tmpfs是有益無害的。當然對於大項目來說,你需要有足夠的內存才能負擔得起這個tmpfs的開銷。
make -j
既然IO不是瓶頸,那CPU就應該是一個影響編譯速度的重要因素了。
用make -j帶一個參數,可以把項目在進行並行編譯,比如在一台雙核的機器上,完全可以用make -j4,讓make最多允許4個編譯命令同時執行,這樣可以更有效的利用CPU資源。
還是用Kernel來測試:
用make: 40分16秒
用make -j4:23分16秒
用make -j8:22分59秒
由此看來,在多核CPU上,適當的進行並行編譯還是可以明顯提高編譯速度的。但並行的任務不宜太多,一般是以CPU的核心數目的兩倍為宜。
不過這個方案不是完全沒有cost的,如果項目的Makefile不規范,沒有正確的設置好依賴關系,並行編譯的結果就是編譯不能正常進行。如果依賴關系設置過於保守,則可能本身編譯的可並行度就下降了,也不能取得最佳的效果。
ccache
ccache工作原理:
ccache也是一個編譯器驅動器。第一趟編譯時ccache緩存了GCC的「-E」輸出、編譯選項以及.o文件到$HOME/.ccache。第二次編譯時盡量利用緩存,必要時更新緩存。所以即使"make clean; make"也能從中獲得好處。ccache是經過仔細編寫的,確保了與直接使用GCC獲得完全相同的輸出。

ccache用於把編譯的中間結果進行緩存,以便在再次編譯的時候可以節省時間。這對於玩Kernel來說實在是再好不過了,因為經常需要修改一些Kernel的代碼,然後再重新編譯,而這兩次編譯大部分東西可能都沒有發生變化。對於平時開發項目來說,也是一樣。為什麼不是直接用make所支持的增量編譯呢?還是因為現實中,因為Makefile的不規范,很可能這種「聰明」的方案根本不能正常工作,只有每次make clean再make才行。
安裝完ccache後,可以在/usr/local/bin下建立gcc,g++,c++,cc的symbolic link,鏈到/usr/bin/ccache上。總之確認系統在調用gcc等命令時會調用到ccache就可以了(通常情況下/usr/local /bin會在PATH中排在/usr/bin前面)。
安裝的另外一種方法:
vi ~/.bash_profile
把/usr/lib/ccache/bin路徑加到PATH下
PATH=/usr/lib/ccache/bin:$PATH:$HOME/bin
這樣每次啟動g++的時候都會啟動/usr/lib/ccache/bin/g++,而不會啟動/usr/bin/g++
效果跟使用命令行ccache g++效果一樣
這樣每次用戶登錄時,使用g++編譯器時會自動啟動ccache
繼續測試:
用ccache的第一次編譯(make -j4):23分38秒
用ccache的第二次編譯(make -j4):8分48秒
用ccache的第三次編譯(修改若干配置,make -j4):23分48秒

看來修改配置(我改了CPU類型...)對ccache的影響是很大的,因為基本頭文件發生變化後,就導致所有緩存數據都無效了,必須重頭來做。但如果只是修改一些.c文件的代碼,ccache的效果還是相當明顯的。而且使用ccache對項目沒有特別的依賴,布署成本很低,這在日常工作中很實用。
可以用ccache -s來查看cache的使用和命中情況:
cache directory /home/lifanxi/.ccachecache hit 7165cache miss 14283called for link 71not a C/C++ file 120no input file 3045files in cache 28566cache size 81.7 Mbytesmax cache size 976.6 Mbytes
可以看到,顯然只有第二編次譯時cache命中了,cache miss是第一次和第三次編譯帶來的。兩次cache佔用了81.7M的磁碟,還是完全可以接受的。
distcc
一台機器的能力有限,可以聯合多台電腦一起來編譯。這在公司的日常開發中也是可行的,因為可能每個開發人員都有自己的開發編譯環境,它們的編譯器版本一般是一致的,公司的網路也通常具有較好的性能。這時就是distcc大顯身手的時候了。
使用distcc,並不像想像中那樣要求每台電腦都具有完全一致的環境,它只要求源代碼可以用make -j並行編譯,並且參與分布式編譯的電腦系統中具有相同的編譯器。因為它的原理只是把預處理好的源文件分發到多台計算機上,預處理、編譯後的目標文件的鏈接和其它除編譯以外的工作仍然是在發起編譯的主控電腦上完成,所以只要求發起編譯的那台機器具備一套完整的編譯環境就可以了。
distcc安裝後,可以啟動一下它的服務:
/usr/bin/distccd --daemon --allow 10.64.0.0/16
默認的3632埠允許來自同一個網路的distcc連接。
然後設置一下DISTCC_HOSTS環境變數,設置可以參與編譯的機器列表。通常localhost也參與編譯,但如果可以參與編譯的機器很多,則可以把localhost從這個列表中去掉,這樣本機就完全只是進行預處理、分發和鏈接了,編譯都在別的機器上完成。因為機器很多時,localhost的處理負擔很重,所以它就不再「兼職」編譯了。
export DISTCC_HOSTS="localhost 10.64.25.1 10.64.25.2 10.64.25.3"
然後與ccache類似把g++,gcc等常用的命令鏈接到/usr/bin/distcc上就可以了。
在make的時候,也必須用-j參數,一般是參數可以用所有參用編譯的計算機CPU內核總數的兩倍做為並行的任務數。
同樣測試一下:
一台雙核計算機,make -j4:23分16秒
兩台雙核計算機,make -j4:16分40秒
兩台雙核計算機,make -j8:15分49秒
跟最開始用一台雙核時的23分鍾相比,還是快了不少的。如果有更多的計算機加入,也可以得到更好的效果。
在編譯過程中可以用distccmon-text來查看編譯任務的分配情況。distcc也可以與ccache同時使用,通過設置一個環境變數就可以做到,非常方便。
總結一下:
tmpfs: 解決IO瓶頸,充分利用本機內存資源
make -j: 充分利用本機計算資源
distcc: 利用多台計算機資源
ccache: 減少重復編譯相同代碼的時間
這些工具的好處都在於布署的成本相對較低,綜合利用這些工具,就可以輕輕鬆鬆的節省相當可觀的時間。上面介紹的都是這些工具最基本的用法,更多的用法可以參考它們各自的man page。
5.還有提速方法是把屏幕輸出重定向到內存文件或/dev/null,因對終端設備(慢速設備)的阻塞寫操作也會拖慢速度。推薦內存文件,這樣發生錯誤時,能夠查看。

⑥ 大家都用什麼C/C++編譯環境

了解的C/C++編譯器如下:
GCC家族有
Cygwin
Mingw32
DJGPP
Dev-C++(Mingw32)
還有正宗的GNU GCC 2.95.5~3.0.0.4版本
MS家族有
MSC 5.0、6.0、7.0
MSQC 1.0、2.5
MSVC 1.0、4.2、6.0、7.0
Borland家族有
TC 1.0、2.0
TC++ 1.01、3.0
BC 3.0、3.1、4.0、4.5、5.0、5.02
BCB 3.0、5.0、6.0
其它有
Intel C/C++ 5.0
Watcom C/C++ 11.0、11.0c
VectorC 1.3.3
IBM VisualAge for C++
DigitalMars C/C++
KAI C/C++ 4.03f for RedHat 7.2
Lcc4.1
LCC-WIN32 2001-09-25~2002-04-28日版
Small C
CC386
Pacific C
另外還有C的解釋器
Quincy
Eic
CINT

上面提到的編譯器/解釋器,大部分我都使用過。現在固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32這五種編譯器。

在GCC家族中GNU GCC是根本,其它的編譯器版本都是從它導出的。其中,Cygwin和Mingw32都是WIN32平台下的編譯器,DJGPP是DOS下的32位編譯器。大家所熟知的DEV-C++充其量只是GCC的一個外殼,它所自帶的編譯器就是Mingw32的一個版本。這些GCC的版本中,Cygwin是最大的,它與其說是一個編譯器,倒不如說是一套編程工具。它不僅有編譯器,還有其它很多的工具。其實,它就是一個UNIX系統在WIN32平台上的實現。實現了大多常用的UNIX工具,最近的版本中連Apache這樣的「工具」都集成進來的。不過,Cygwin雖然功能強大,但它卻不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因為太多其它的工具分散了人們的注意力。相比之下Mingw32就要好用得多,它只有最基本的幾個編程工具(只可惜它不自帶GDB)。GCC中並不只是C/C++編譯器,其中還有很多其它的編譯器如java,Fortran,ADA等。它是一個編譯器集合,不過有些編譯器只能在UNIX系統上用。MS家族的編譯器就不用說了,大家對它們都很熟悉。VC 7.0(VC.NET)是它的最新產品。Borland家族也不用說,大家也是耳熟能詳。最近它才推出了BCB 6.0。

其它的編譯器如:Intel C/C++大家一看名稱就知道是Intel的東西,它和VC6完全兼容,不過要掛在VC6下才能用。Watcom C/C++是早先編譯器四國大戰中的一員,原本是很不錯的東西,可惜戰略不對,現在已不見聲息了。倒是以它為基礎的一個OpenWatcom現在還在奮戰。VectorC是我近日才發現的一個好東東,它是個純C的編譯器。IBM的VisualAge for C++原本是IBM想用來淌C++編譯器這片渾水的東西,不過IBM的戰略改了,它就被放棄了。DigitalMars C/C++的前身的Symantec C++(它也是編譯器四國大戰中的一員),不過現在Symantec不做了,於是它的作者就把它改成了DigitalMars C/C++開放給大家使用。以上這些都是WIN32平台上的東西。KAI C/C++是個很強大的C/C++編譯器,它是個多平台的編譯器。不過現在被INTEL收購了,已經停止開發了。Lcc4.1是個純C的編譯器它是開放源代碼的。不過不怎麼好用。LCC-WIN32是一個在LCC基礎上開發的c語言的集成開發環境,很好用,而且有很詳細的資料,FREE!Pacific C是一個純DOS的C的集成開發環境,就不多說了。Small C CC386都是開放源代碼的編譯器,它們都很簡單,應用來給大家學習編譯器的。Quincy Eic CINT都是C的解釋器,是用來讓大家學習C語言的其中CINT的功能很強大,還支持一些C++的特性。
當然還有很多其它的編譯器,這里我給出的編譯器都是可以在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的編譯器還是以GNU的為主,其它的我就不是很清楚了。

在以上的編譯器中,最特別的就是VectorC這個東西只支持純C。但它卻號稱是最快的編譯器,不過經過我的試驗,它的確在有些情況下強過其它編譯器很多!而且它還有個互動式的優化器,可以讓你直接看到C代碼對映的匯編代碼。Cygwin和Mingw32為一母所生,其運行效果相差不大。它們生成的代碼效率都很不錯,編譯的速度也很快,最值得一提的是它們對C++的特性的支持算是所有編譯器中最完全的,而且它們還支持C99的大部分特性。這一點很是不錯!大家對MS的VC已經很熟悉了,本不用我多說。不過在它的最新的產品VC7.0中,有很大的改進。它對C++的特性的支持比6.0有了很大的提高,是我所用的編譯器中是僅次於GCC的。而且它編譯出的程序,運行速度很快!僅有少數時候次於VectorC與GCC,其它情況都是最快的!其平均運行速度是最快的。對Borland的產品我也無需多說。它的TC2.0與BC3.1都是我最喜歡的東西。可是現在的BCB卻大不如前了,編譯的速度和VC6一樣慢!IDE還有較多的BUG。最令人想不通的是它生成的代碼的運行速度很慢,比LCC-WIN32還慢!它唯一值得一提的就是它的RAD做的比MS的好。Intel的編譯器大家可能不熟,它太貴了!還要有VC的支持,很不劃算,而且編譯速度比VC6還慢。不過它的代碼質量很不錯。DigitalMars C/C++沒有什麼亮點,編譯速度較快,代碼執行速度適中,對C++特性支持還算不錯。LCC-WIN32是個很不錯的集成開發環境,它只支持純C。它的編譯速度極快!代碼執行速度較慢。不過它的最大亮點在於它的IDE,在所有的FREE編程工具中,它的IDE是最專業的,有很強大的代碼分析,管理功能。而且它提供了大量的編程資料。
我曾對一些編譯器的代碼執行效率做過一些測試,以下是概況:
1. VectorC、VC 7.0 (極快)
2. Intel C/C++、VC 6.0、GCC (很快)
3. DigitalMars C/C++ (一般)
4. LCC-WIN32、BCB、BC5.02 (較慢)
當然,我所做的測試比較片面。不過在很大程度上已能反映其大概狀況。

⑦ 如何提供java編譯protobuf協議文件的速度

ProtoBuf java 包編譯
ProtoBuf的官方下載包並不包含jar文件,需要用戶自己configure/make….來自行編譯。由於Windows上沒有編譯環境,就用了一個笨一點方法處理了。
分別下載:
protobuf-2.4.1.zip ProtoBuf的源文件(包含了C++/Java/Python)的源文件
protoc-2.4.1-win32.zip 已經編譯過的用於Windows平台的protoc命令(該命令用於將.proto文件轉化為Java或C++源文件)。

分別解析這兩個文件,你可以在protoc-2.4.1-win32.zip解壓後的文件中找到一個protoc.exe文件,將其到protobuf-2.4.1/src目錄下,然後進入protobuf-2.4.1/java,執行:
mvn install

如果沒有安裝maven的話,可以在網上找一下maven的安裝手冊。
編譯完成後可以在protobuf-2.4.1/java/target目錄中找到protobuf-2.4.1.jar文件.
後記
protobuf-2.4.1.zip裡面同時包含了protoc和java等的源文件,如果按照官方教程來安裝的話,就是先產生出protoc編譯器,然後再生成jar包。由於mvn install同時包含了編譯和測試過程,而測試代碼又依賴於protoc編譯器,所以就需要單獨下載protoc編譯器,並置於src目錄下了。

如果不需要驗證編譯結果(不執行單元測試),則可以如下:
下載protobuf-2.4.1.zip並解壓,進入到protobuf-2.4.1/java
mvn install –Dmaven.test.skip=true
這樣就可以了。

⑧ 怎麼樣測網速啊 ! 網速多少就算差啊

不要說網路速度只是網管大哥的專利,每個菜鳥DD同樣可以了解,盡管有時候他們搞不清網路帶寬同食堂大師傅講的面條帶寬有啥區別,而且經常被K、M、G之類的玩意搞得雲里霧里。事實上每個人都可以輕松獲知自己的連接帶寬,就像看溫度計一樣容易(什麼?看不懂溫度計?!……)只要看完這篇文章,即使你只有「半瓶水」,也可以在老闆面前露一小手了,多來兩回,沒准兒還給整個副科級待遇啥的……
你是使用ADSL或者乙太網接入的寬頻用戶嗎?你是否覺得連接速度時快時慢?或者你使用一個56K的小貓,而顯示的連接速度卻總是6位數。你確實想知道自己連上互聯網的准確速度,但又不知如何入手?來吧朋友,我來教你一步步測試自己的連接速度到底有多少。
首先當然是撥號上網了,然後連接到www.linkwan.com/gb/broadmeter,見到那個「帶寬測試」了嗎?按下那個「測試連接至北京、美國、香港、深圳、台北、上海以及廈門的連線速度」的鏈接,然後選擇一個地點的伺服器來測試你的連接速度。選距離你最近的吧,我選擇北京。在測試中最好不進行其它網路操作,以免影響測試的准確性。開始測試了,稍稍等待一會兒……OK,結果出來了。那個溫度計顯示的就是你的連接速度,從下到上速度依次升高。現在你知道你的連接速度到底有多少了,不會再被Windows唬人的數字蒙騙了!
想測試你到美國的連接速度有多少嗎?你說什麼?沒用?不會吧,拜託!難道你從來就不訪問國外的網站?如果你連接北京的速度飛快而連接其它國家的速度都不太理想而且你經常訪問國外的站點的話,我勸你換個ISP吧。左圖是我連接到美國伺服器的測試結果。對比一下簡直不敢想像,竟相差了那麼多。看來我也要考慮一下ISP的問題了。上圖顯示了中國各大ISP與國家互聯網交換中心(NAP)的連接帶寬,你要是對此感興趣並想了解更多情況的話,www.linkwan.com/gb/broadmarket/bandwidth/cnnic.htm有你想要的。
在www.linkwan.com網站不光可以測試連接速度,還可以進行其它網路相關方面的測試。
想知道你在連接到網站時信息數據經過了哪些節點、用了多長時間嗎?Visualroute網路路徑節點回溯分析工具可以幫你。它集成了ping,whois與traceroute程序功能,自動分析網路連接結果,並呈現在世界地圖上。提供從中國北京到你所選擇的任一個域名或IP的Ping結果和圖形化的路由信息。點擊輸入框右邊顯示你IP的按鈕,則會得到從伺服器到你的計算機之間的路由節點信息。
你有自己的個人主頁嗎?或者你正准備上傳自己的第一個個人主頁?或者你是專業網頁設計師?不管怎樣,下面的網頁特性測試對你一定有用!測試項目包括:瀏覽器兼容度:給出網頁在多種瀏覽器下的顯示報告,還詳細統計網頁中哪些HTML語法不被瀏覽器支持,以及改善的建議。鏈接情況牶幫你檢查頁面上所有鏈接是否正確,有沒有無效鏈接。當你的頁面創建了很多鏈接的時候,用它來幫你檢查鏈接的正確性,那可是再好不過了!HTML語法檢查牶幫你仔細檢查頁面上的語法,給出詳細統計報告,而且會告訴你怎樣解決出現的問題,避免不正確的HTML語法影響瀏覽器的編譯速度。下載時間:測試你的網頁在不同連接速度下的下載時間,並且指出被測試頁面所鏈接的文件(圖片文件、框架頁面、樣式表文件、腳本文件等)中哪個過於龐大。

⑨ Lua到底有多快

學習Lua有段時間了,資料、教程也看了不少。給我印象最深的是幾乎所有的資料中都特別稱贊Lua的三個優點:一是體積小,二是代碼優美,三是速度最快。完整的lua5.1隻有區區200K,小得幾乎可以忽略不計;對於Lua的代碼優美,可能多數是指Lua的c語言源代碼簡潔高效,而在我看來,用Lua寫的程序,語法簡單,可讀性強,極大地保持了高級語言接近人類自然語言的特性,看起來也很優美啊!

但我還是對它的第三個優點最為在意。很多人都說Lua是目前世界上速度最快的腳本語言,那麼Lua到底有多快?沒有人拿出具體的數據來說明。沒有比較就沒有鑒別,所以我想親自測試一下。下面是在同一台機器上分別用6種語言執行1億次浮點運算的測試結果(1億以內的所有整數開3次方並求和),有圖為證:

測試說明:

1、一般來說,我們總是認為編譯型語言要比解釋型語言快,這裡面delphi和易語言屬於編譯型語言,而VB有人認為只是偽編譯而已,lua、vbs、vba都屬於解釋型語言,它們之間最有可比性。

2、從測試結果來看,在這幾種語言中,Lua的運算速度僅次於delphi !而delhpi的編譯速度、執行速度都是久負盛名的。

3、這里之所以把vba也算一個,是因為自從微軟宣布停止對vb6的支持後,vb將死的說法一直不絕於耳。但是Office是微軟的傳家寶,一直在不斷升級。office中與vb6同宗同源的vba自然不會被微軟舍棄,網上有人從中提取出了可以獨立安裝的vba6.5和vba7.0,(office2003中的vba版本是6.0),我用vba6.0測試了一下,比vbs還要慢很多,而用vba7.0就快多了。真是個令人驚喜的意外發現!

⑩ maclinux哪個快

Linux系統攻克Mac電腦,Asahi Linux Alpha版編譯比macOS快40%

原創2022年5月27日Asahi Linux 的編譯速度比 macOS 足足快了 40%。

CSDN

mac對比linux編譯速度,Mac OS X 10.5和Linux Ubuntu 8.10性能對比測試...
2021年5月1日Bonnie++磁碟性能測試:不管持續寫入還是隨機讀取,Mac都明顯好得多,而且讀寫性能基本一致;Ubuntu還是64位版稍好一些。大概和雙方使 用的文件系統...
CSDN編程社區

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:705
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:969
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:677
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:831
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:738
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1077
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:309
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:189
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:875
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:831