减少Post Time

最近有个project需要降低Post Time,我花了些时间去调整code,最终达成目标。最近发现可能是年纪大了,记性狂插:(,遂决定记录一下,以备后用。总结了一下,主要做了以下的工作:

1.调整SEC阶段CAR,code stack & data stack size,提升SEC阶段及PEI阶段的性能,降低时间。

2.如果CPU支持P-State,在进PEI之前先将CPU调整的最大的perfermence也即P0,要是CPU没锁倍频那你爽了,尽量调吧。

3.Remove 没有用到的peim & dxe,降低code size,从而减少spi core dispatcher以及dxe core dispatcher的时间,另外BIOS中为了节省空间,通常会对一些moudle进行压缩,跑code的时候再解出来,所以size降低压缩和解压的时间也可以节省出来了。

4.减少spi device support的部分,在variable读写的BIOS code通常会扫一遍所有支持的device,check rom device id 然后决定使用的device,所以将support的spi device 减少一些也会降低一些时间;还有一个比较重要的特性是有些spi devie support normal read和fast read,所以如果device支持fast read,就将读rom的cmd改成fast read。

5.有些BIOS为了支持recovery等function文件系统的driver在bds阶段会读取光驱、HDD里面的东西,这时会有很多的延时操作,如果不需要这部分就要拿掉这部分code。

6.检查chipset / kernel switch,如果尽量关掉没有用到的feature,不用support的CPU也关掉相应的switch,这部分减少的时间也是相当可观。

7.option rom,pxeboot这个部分也是大户,跑option rom时间也不是BIOS能够控制的,试验下来就发现基本上每多跑一个rom都会增加1~2s的时间。所以如果客户能够接受,能先不跑的就不要跑了。

 

先这么多了。:)

 

Peter

 

2010-04-30

对于Tornado的POST请求,有几个优化建议: 1. 设置最大请求体大小:默认情况下,Tornado的最大请求体大小为100MB,可以通过设置`max_body_size`来限制请求体大小,以防止恶意攻击或意外情况导致的内存消耗过大。例如: ```python class MyHandler(tornado.web.RequestHandler): def initialize(self): self.max_body_size = 10 * 1024 * 1024 # 限制最大请求体大小为10MB def post(self): data = self.request.body # 处理请求体 ``` 2. 使用异步请求处理:对于需要进行长时间计算或IO操作的请求,可以使用异步请求处理,以避免阻塞主线程。可以使用Tornado提供的异步装饰器`@tornado.gen.coroutine`或`async/await`语法来实现。例如: ```python class MyHandler(tornado.web.RequestHandler): @tornado.gen.coroutine def post(self): # 异步处理请求体 data = yield self.read_request_body_async() # 异步计算或IO操作 result = yield self.compute_async(data) # 返回响应 self.write(result) @tornado.gen.coroutine def read_request_body_async(self): data = yield tornado.gen.Task(self.request.body) raise tornado.gen.Return(data) @tornado.gen.coroutine def compute_async(self, data): result = yield tornado.gen.Task(self.some_long_time_computation, data) raise tornado.gen.Return(result) ``` 3. 启用gzip压缩:对于请求体较大的请求,可以启用gzip压缩来减少网络传输量和请求时间。可以通过设置`Content-Encoding`头来启用gzip压缩,例如: ```python class MyHandler(tornado.web.RequestHandler): def post(self): # 启用gzip压缩 self.set_header('Content-Encoding', 'gzip') # 压缩请求体 data = self.request.body compressed_data = gzip.compress(data) # 处理请求体 result = compute(data) # 返回响应 self.write(result) ``` 通过上述优化方法,可以有效提升Tornado处理POST请求的性能和健壮性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值