Archives for January 2011

Mac OS X上GCC编译的EXC_BAD_ACCESS错误

某次在写compiler作业的时候,需要验证自己生成的汇编代码兼容多平台。结果发现在Linux下没问题,在Mac OS X下会出现 Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: 13 at address: 0×00000000 的错误。查阅Mac OS X ABI Function Call Guide,发现在Mac基于Intel x86的平台上,function call的地址必须是16字节对齐的。解决方法是在gcc命令中加入flag: -mstackrealign。 这里是这个flag对应的解释:

聊聊电脑性能测试的演变–看Android评测有感

这两年,Android的浪潮是一波接着一波,导致的现象就是每隔三五天就有新的手机出来。HTC,MOTO,三星,LG,你不一个月推一款,出门都不好意思和别人打招呼。各个评测网站也就甩开膀子搞评测,出来一款跑一款分,简直有点病态的趋势。各种各样的评测软件也层出不穷,基于Pi的,基于Linpack的,等等等等。对于消费者来说,这可就难办了,乱花渐欲迷人眼,这么多款,选谁好呢?今天看这里用x软件评测说a>b>c>d,明天就在那里看用y标准评测说a<b<c<d。该信谁呢。 如果想要从这些林林总总的测试中跳出来,搞清楚到底它们测试的是什么性能,就要理解这些测试到底都干了些什么,这些分数背后的本质是什么。实际上,不管是电脑也好,手机也好,这些跑分测试,本质上都是选择某一种workload,然后让机器去执行,然后通过某些执行后得到的结果,比如耗费的时间,总共执行的指令等,转换成分数。所以,workload是所有测试的本质决定者。