今天晚上听到要搬到中关村去,很不开心。那个地方离家是在是太远了。
但是现在最后搬回到知春路上,所以虽然不是那么方便,但是还可以忍受。
2008年10月28日星期二
2008年10月22日星期三
2008年10月20日星期一
2008年10月19日星期日
为海信准备的产品
今天是10月19日,星期天,昨天周六,把为海信准备的产品给海信的DQE部门测试,他们昨天测试了2个小时,发现一些问题后,就没有继续测试下去了。项目经理着急召集大家来加班,下午差不多都到齐了。
下午和海信确定问题详细情况后,和大家一起讨论问题,确定下面的推进方法。差不多折腾到晚上10点多,有同事着急回家,要再晚点就赶不上地铁了,所以我们就走了几个人,剩下几个人还在忙碌着。
这是上市前最后的一段时间了,熬过去应该就好了。按照我们老板的话,99拜就过去了,就差这一拜了。
下午和海信确定问题详细情况后,和大家一起讨论问题,确定下面的推进方法。差不多折腾到晚上10点多,有同事着急回家,要再晚点就赶不上地铁了,所以我们就走了几个人,剩下几个人还在忙碌着。
这是上市前最后的一段时间了,熬过去应该就好了。按照我们老板的话,99拜就过去了,就差这一拜了。
2008年10月16日星期四
在uclinux平台上的经验教训
在uclinux上,如果来回启动应用程序,容易出现系统内存不足的问题。
在我们现在做的一个产品上,就经常出现这样的问题,特别是在几个程序同时运行的时候。
我们还发现在系统刚刚启动的时候,载入一个大程序容易出错。经过仔细分析,发现在启动
的时候,系统内存区域中已经有很多slab,而有这些后,会容易导致出现载入内存出错的情况。
经过仔细排查,发现系统启动的时候,做了一次列出目录的操作,这个操作会让操作系统使用
很多内存在做缓冲。由于目前我们没有找到方法处理这个问题,所以把启动的时候列出
目录的功能关闭了,这样就一切正常。
在我们现在做的一个产品上,就经常出现这样的问题,特别是在几个程序同时运行的时候。
我们还发现在系统刚刚启动的时候,载入一个大程序容易出错。经过仔细分析,发现在启动
的时候,系统内存区域中已经有很多slab,而有这些后,会容易导致出现载入内存出错的情况。
经过仔细排查,发现系统启动的时候,做了一次列出目录的操作,这个操作会让操作系统使用
很多内存在做缓冲。由于目前我们没有找到方法处理这个问题,所以把启动的时候列出
目录的功能关闭了,这样就一切正常。
2008年10月14日星期二
关于下载多文件的时候考虑
现在在项目中需要下载opml和rss协议的节目单,这两种文件都是xml格式的,在其中有个DateModified标签,表明文件的修改时间,现在是判断如果本地文件的该标签的值比服务器上的早,那么需要更新,否则不更新。
现在出现一种情况,经常是opml文件更新了,但是下面的rss文件没有更新,以前没有考虑到这种情况。现在考虑的解决方法是:
在更新到opml文件的时候,设置它的修改时间为1700年
在所有opml下的xml文件更新成功后,设置opml的修改时间为DateModified时间
下次查询,用文件修改时间去和服务器进行比较,如果本地时间比服务器上早,去取新的。
这样也可以避免本地时间不对可能导致更新不正常的状态出现。
现在出现一种情况,经常是opml文件更新了,但是下面的rss文件没有更新,以前没有考虑到这种情况。现在考虑的解决方法是:
在更新到opml文件的时候,设置它的修改时间为1700年
在所有opml下的xml文件更新成功后,设置opml的修改时间为DateModified时间
下次查询,用文件修改时间去和服务器进行比较,如果本地时间比服务器上早,去取新的。
这样也可以避免本地时间不对可能导致更新不正常的状态出现。
2008年10月8日星期三
嵌入式平台下openssl的裁剪方法
在嵌入式平台上,如果使用openssl的标准方法,编译出来的libcrypto.a和libssl.a会比较大,分别是2M多和400多K,为了减少空间使用率,可以使用下面的命令去掉一下东西:
./config no-shared no-zlib no-asm no-dso no-threads no-comp no-gmp no-krb5 no-rc5 no-zlib-dynamic no-hw no-cipher
创建出Makefile后,把gcc改成arm-elf-gcc, 把ranlib改成arm-elf-ranlib,这就可以生成比较小的libcrypto.a和libssl.a。
其实也可以用./config no-shared no-zlib no-asm no-dso no-threads no-comp no-gmp no-krb5 no-rc5 no-zlib-dynamic no-hw no-cipher -os/compiler:arm-elf-gcc编译arm版本,但是这样产生的库比上述方法大,看了一下,好像是优化级别差异,一个是-O,一个是O3
另外,如果用arm-elf-strip把库的符号去掉,库会小一半,但是应用程序就会报告找不到函数的实现,还没有找到怎么解决它。
./config no-shared no-zlib no-asm no-dso no-threads no-comp no-gmp no-krb5 no-rc5 no-zlib-dynamic no-hw no-cipher
创建出Makefile后,把gcc改成arm-elf-gcc, 把ranlib改成arm-elf-ranlib,这就可以生成比较小的libcrypto.a和libssl.a。
其实也可以用./config no-shared no-zlib no-asm no-dso no-threads no-comp no-gmp no-krb5 no-rc5 no-zlib-dynamic no-hw no-cipher -os/compiler:arm-elf-gcc编译arm版本,但是这样产生的库比上述方法大,看了一下,好像是优化级别差异,一个是-O,一个是O3
另外,如果用arm-elf-strip把库的符号去掉,库会小一半,但是应用程序就会报告找不到函数的实现,还没有找到怎么解决它。
订阅:
博文 (Atom)