Web Bench 原始碼學習

2022-08-09 16:45:23 字數 1345 閱讀 7079

web bench是乙個開源的,用c語言寫成的測試伺服器或**的乙個工具

通過fork()來測試,**量不大,絕對是乙個學習的教材

**但是沒有更新了,估計也很少人用這個,最新的是2023年的1.5版本,不過也不失為乙個好的學習專案.

介紹中說,這個測試不是很真實,但起碼可以模擬伺服器的效能

檔案結構

makefile

cflags?=	-wall -ggdb -w -o

cc?= 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...