web bench是乙個開源的,用c語言寫成的測試伺服器或**的乙個工具
通過fork()來測試,**量不大,絕對是乙個學習的教材
**但是沒有更新了,估計也很少人用這個,最新的是2023年的1.5版本,不過也不失為乙個好的學習專案.
介紹中說,這個測試不是很真實,但起碼可以模擬伺服器的效能
檔案結構
makefile
cflags?= -wall -ggdb -w -occ?= gcc
libs?=
ldflags?=
prefix?= /usr/local
version=1.5
tmpdir=/tmp/webbench-$(version)
all: webbench tags
tags: *.c
-ctags *.c
install: webbench
install -s webbench $(destdir)$(prefix)/bin
install -m 644 webbench.1 $(destdir)$(prefix)/man/man1
install -d $(destdir)$(prefix)/share/doc/webbench
install -m 644 debian/changelog $(destdir)$(prefix)/share/doc/webbench
webbench: webbench.o makefile
$(cc) $(cflags) $(ldflags) -o webbench webbench.o $(libs)
clean:
-rm -f *.o webbench *~ core *.core tags
tar: clean
-debian/rules clean
rm -rf $(tmpdir)
install -d $(tmpdir)
cp -p makefile webbench.c socket.c webbench.1 $(tmpdir)
install -d $(tmpdir)/debian
-cp -p debian/* $(tmpdir)/debian
ln -sf debian/changelog $(tmpdir)/changelog
-cd $(tmpdir) && cd .. && tar cozf webbench-$(version).tar.gz webbench-$(version)
webbench.o: webbench.c socket.c makefile
.phony: clean install all tar
webbench原始碼學習
解讀getopt long static const struct option long options while opt getopt long argc,argv,912vfrt p c h long options,options index eof if tmp optarg if tm...
webbench原始碼分析
根據提供的引數構造http請求的訊息頭,然後fork出n個子程序 也就是webbench時候提供的引數 c n 每個子程序根據根據引數 t提供的時間,持續這麼多秒,這這麼長的時間內利用socket建立乙個tcp連線到我們想要的 頁面。然後每個程序統計自己再這個時間內取得了多少頁面和多少資料,然後由父...
原始碼學習 ArrayList的擴容原始碼分析
原始碼如下 下面是arraylist的擴容機制 arraylist的擴容機制提高了效能,如果每次只擴充乙個,那麼頻繁的插入會導致頻繁的拷貝,降低效能,而arraylist的擴容機制避免了這種情況。如有必要,增加此arraylist例項的容量,以確保它至少能容納元素的數量 param mincapac...