Windows字体为什么那么难看?
1)很多字库比如宋体,12号以下都是点阵字体。
2)GDI太老了,只有5级灰度,而且AA是横向的,Y轴方向没有AA。
3)雅黑又不能通用,且小字号时高低不平。
改进:
1)字体SuperSample。
2)勾边。
1)很多字库比如宋体,12号以下都是点阵字体。
2)GDI太老了,只有5级灰度,而且AA是横向的,Y轴方向没有AA。
3)雅黑又不能通用,且小字号时高低不平。
改进:
1)字体SuperSample。
2)勾边。
经过若干次试验修改,研究出下面这个快速/255的宏,可以在 X属于[0,65536]的范围内误差为零:
#define div_255_fast(x) (((x) + (((x) + 257) >> 8)) >> 8)
传统来说,人们习惯于将 /255改为 >> 8,但是这样误差挺大的,比如先乘以255再除以255,连续做十次,如果用>>8来代替除法,那么十次之后,误差为10. 另外一种常见的近似法是((x) + 255) >> 8,这种累积误差也挺厉害的。
因此>>8代替/255结果是比较粗糙的。而这个宏的开销比起>>8来说成本大12%。
经过测试65536000次计算中,使用/255的时间是325ms, 使用div_255_fast的时间是70ms,使用>>8的时间是62ms,div_255_fast的时间代价属于可以接受的范围。
下面是测试程序(点击more展开):
他横向对比了: Perl, C++, Java, Python,然后给出了10大使用Python的理由,比较经典。
下载地址:http://www.joynb.net/wiki/images/c/c2/Why_I_Love_Python.rar
相信大家代码里有很多地方用到memcpy这个函数,相信这个函数的占用是不小的,有时优化了memcpy,能使整个项目的运行效率提升。通过适当的编码技巧,让我们的内存拷贝速度超过memcpy两倍,是可以实现的。
1. 跨平台网络库
2. 异步事件:kevent, iocp, epoll, poll, select封装
3. 内存管理:SlabPlus
4. 可靠协议:类tcp纯协议实现,包括重传机制,窗口管理,流量控制,拥塞处理。
5. 多种工具:缓存池,环状缓存,高性能hashmap等。
代码贴上:
Read more…
Recent Comments