只手搓了搓脸,搓到指腹压着眼眶的时候停了一下,指头按着眼皮,好像在让眼球缓一缓。
他放下手,问:“那他有没有说什么方案?”
梁永琪又发了一条短信过去。
这回她打的是“握手时序怎么改”。
她打字很快,拇指在屏幕上点了几下就发出去了。
回信来得比刚才快,大概只隔了一分钟,手机震了一下。
她点开,陈浩的回复只有一句话:“把客户端的第一个数据包从握手之后改到握手确认之前发,服务器收到即认为连接有效。”
李轩看完这条,整个人顿住了。
他的目光停在屏幕上的那行字上,嘴里无声地动了几个字,像是在把这句话拆开了嚼碎了往肚子里咽。
他保持那个姿势大概有五六秒,然后猛地转过身面朝主控机,手指落在键盘上噼里啪啦地敲起来。
他敲得很快,几乎没停顿,一边敲一边说:“把握手确认之前的等待窗口去掉,客户端在发第三次握手确认的时候同时带第一个数据包,服务器收到之后同时完成连接建立和数据接收。
这样握手和首包合并成一个原子操作,连接池的占用时间缩短了三分之二。
原来一个连接从握手到建立要将近一秒钟,现在压缩到三百毫秒以内。
池子里的连接转得过来,后面排队进来的就能接上了。”
他旁边的短发女生已经凑过来了,脑袋几乎要贴上他的肩膀。
她盯着屏幕上正在改的代码,眼睛眯起来。
“这样改的话,首包丢了怎么办?客户端发的确认里带了数据包,服务器那边没收到的话,整个连接怎么处理?”
“首包丢失客户端重发握手确认,整个连接重建。
丢一次重建一次,跟原来的逻辑比多了一次重传开销,但丢包率本身不高,这个代价可以接受。”李轩敲完最后几行,手指在回车键上用力按了一下,按下去的时候发出“啪”的一声。
他按了保存,然后从椅子上站起来,走到那台主机的侧面蹲下去,把侧板掀开,用手电筒照着检查了一下内存条的插接状态。
他拔下来一根,用拇指擦了擦金手指,又重新插紧。
“先跑一遍单线程测试,过了再上并发。
你们别围在这儿了,去吃早饭,包子该凉了。”
他说完这话,自己却没去拿包子。
他蹲在主机边上,仰着头看机箱里的走线,一根一根地顺着线捋过去,像是怕哪个接口松了影响测试结果。
其他几个人慢慢动了。
抱黑包的男生把怀里的包搁在桌上,走到门边的桌子前拎了一只塑料袋回来,从里面掏出一只包子咬了一口,嚼了两下,又拿起豆浆喝了一口。
豆浆已经不太烫了,温的。
短发女生也走过去拿了一只包子,靠在桌边慢慢吃,她吃得慢,一小口一小口地咬,眼睛还盯着李轩那边的屏幕。
办公室里弥漫着包子的面皮味和豆浆的豆腥气。
有人吃了几口之后打了个嗝,声音不大,闷在嘴里。
李轩检查完机箱,把侧板盖上拧好螺丝,回到主控机前面坐下。
他点开刚才保存的代码,重新编译了一遍,编译过了之后开始跑单线程测试。
屏幕上跳出来测试进度条,一格一格往前移。
梁永琪靠在门框边上,抱着胳膊看着屋里这些人。
她的视线从李轩的侧脸移到那个吃包子的男生身上,又移到短发女生身上,最后落回李轩的屏幕上。
她没出声,就那么站着。
单线程测试跑完了,通过。
李轩深吸
-->>(第3/4页)(本章未完,请点击下一页继续阅读)