返回信息流转信站: BYR!news.cn99.com!NewYTHT
出 处: 59.151.45.52
http://blog.ptt2.cc/blog.pl/in2/article,20050228.html
February 28, 2005
Ptt/Ptt2 历史 (3)
直到 Fri Sep 26 CST 2002 这一天之前 (这一天发生了某件大事,后面会说) ,
每天晚上都像恶梦一样,系统狂 overload ,
人数满载 (因为再开上去只会把整个系统卡死让已经在线上的人动不了) 。
而且那个时候超夸张,
只要你 idle 超过 550秒 (甚至还不到十分钟)
就直接把你踢下线,
为的只是反正你暂时不用,
那就不要佔在那边,
让想上站的人上站。
最要命的是每天不良牛硬是比我们多几百个人,
那种感觉真的很差!
所以,在那一阵子里,有一大堆神祕的 code 被写出来以及被修正,
最多的要算是 2002 年四五月
(刚好是期中考的时候, 我只要一有考试就会有动力写程式 :PPP)
直到已经快要三年后的今天,仍然还看的到的包括
general namecomplete (「按空白键自动搜寻」的部份) ,
别于传统作法,使用更少记忆体以及更少计算资源的使用者名单,
全部改成 strlcpy(3)、snprintf(3)这类较安全的字串处理方式,
把所有的程式 re-indent,
当然这些这大概要玩程式的人才知道这是什么了 :p
反正就是看到哪边花记忆体就往哪边开刀,
而那个时候还不知道太多工具,
所以都从看的到的 malloc(3)或是大阵列来着手,
偷多少算多少 :p
我们还尝试过改用 Intel C Compiler 来编看看,
不过结果比较惨 (因为 icc没有办法对 memory usage最佳化)
但是要说最夸张的事情,要算是 OUTTA_SWAP 了!!!!
什么是 OUTTA_SWAP 呢?
大概是那个时候 Ptt本身的记忆体不够用,
可是我有另外一台 PttX 放在旁边 (好像上面有 1G 的记忆体)
于是我就想说,
有没有可能将一些暂时用不到的资料,
就 swap out 到 PttX 上,
等到要的时候再 swap in进来?
那次搞最主要的大概要算是已读未读以及当前看板列表等等资料,
也就是,当你从主选单进入 分组讨论区 的时候,
你会先拿一块记忆体 A来存 分组讨论区 的内容,
当你再从 分组讨论区 进入某个次选单的时候,
除了会拿一块新的记忆体 B来放次选单的内容,
同时间 A就暂时用不到了。
所以说,这个时候就把 A swap out 到 PttX 上,
等到哪天又要用到的时候,再把它从 PttX 拿回来。
因为那个时候 Ptt本身的硬碟 loading也过高,
把这些资料写入硬碟绝不是好事情,
所以这听起来要是很棒的做法!
我甚至在 PttX 上面 maintain 一个 avltree来处理这些资料。
但是,由于有超频繁的 swap in/out,
会发现整个系统的效能很低 -
就算我已经将两台电脑直接用跳线对接,
每次的 swap in/out还是令 user 觉得卡一下卡一下。
我印象中这段 code 并没有真的上线过 :PPPPP
也还好没有上,不然会死的很难看 :p
有趣的是, 2002/05/25 似乎是个神祕的日子,
我和 ptt两个人总共 commit 了 39 次 ~_~
不知道在搞什么 :p
推文也是差不多那个时期出现的东西 :p
也还好没有上,不然会死的很难看 :p
有趣的是, 2002/05/25 似乎是个神祕的日子,
我和 ptt两个人总共 commit 了 39 次 ~_~
不知道在搞什么 :p
推文也是差不多那个时期出现的东西 :p
小光光学长第一次的 commit 是在 2002-06-26 04:27:00 +0800 (Wed, 26 Jun
2002)
纪录一下 :p
Posted by in2 at Ptt2 bbs
这是一条镜像帖。来源:北邮人论坛 / bbs-man-dev / #4516同步于 1 周前
BBSMan_Dev机器人发帖
Ptt/Ptt2 历史 (3)
wayhome.
1 周前镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。