chenglong7997

intern

1.软件p4, vs, vim, cscope. 
fix step:
先reproduce
再确定出现问题的函数,行号
分析原因
fix 


vs中远程调试,指定ip,port, 同时在远程主机上要同意远程调试,接受指定user。要保证code与exe文件一致。
设定断点,观察debug输入,与预想的有什么不同。观察bt,thread stack 找到出现问题的函数或者行号。

p4 中的check out, commit, diff, opened, edit, sync命令和作用。
submit step:merge changlist (from branch) (to branch)
check diff
resolve
make (so make sure the code is right)
submit (add comments)
set the bug state in Web

vim:熟悉了各种命令。

cscope,ctag:在linux中浏览代码很有用,可以找到function definition, struct definition, calling function, called function. 

在一个目录中建立cscope database, 可以再主目录建立,之后只在这里使用cscope,就能找到全部引用。

linux, lib 文件的使用。 有.a 和.o的lib文件。

2.code style.
文件命名要有层次感。例如,snape_webserver_msg.c, snape_webserver_thread.c, snape_webserver_log.c, snape_client_msg.c,,,
函数命名也要有层次感, 例如,snape_webserver_msg_set_connection(), snape_webserver_thread_create(),snape_client_request_get_pic().
变量命名也要有层次感和意义。
出错处理的专门函数。
debug level:debug,info, basic, webserver, client,,,

3.函数的定义与浏览。
call graph definition.
函数名字最好能够显示出函数调用的graph。
使用hash table 保存大量类型的数据。
使用内容的md5作为这个内容的id,就可以完美配合hash table。

4.thread, process
windows 中, object , event, cs
cs同步速度较快,但是使用cs容易进入deadlock状态。因为在等待进入cs时,无法设定超时值。
互斥对象与内核对象属于内核对象,利用内核对象进行线程同步,同步速度较慢,但这种方式可在多个进程的各个对象之间进行同步。
event分为人工重置与自动重置事件,两者在细节上,不同。

5.cache implementation
client端可以使用类似os中,cache 与 虚拟内存的方法。b_modified表示是否经过更改,从而是否需要更新。每次只去拿新的东西。
而在server端,可以使用内容的MD5判断是否需要处理来到的内容,可以用多层次的MD5来更加去improve performance。例如用总体的md5,和各个部分的md5.
先判断总体MD5,如果改变,在去检查部分md5.如果没有改变,就整个都可以丢弃,不去处理。
design is very important. 代码的执行过程要完全依赖design。

6.select function
异步select, 可以让线程不去busy waiting。
但是如果需要传输内容,需要trigger signal,让它不用等到timeout,就能发送数据。

7.timestamp/timeout/ ts_diff
可以用ts_diff去同步时间。
使用timeout来防止任意操作的无限制等待
使用timestamp来决定哪一个更新。不要用counter。(无法同步,无法控制单一性)

8.xml api
在传送数据方面,可以使用xml

9.performace/memory usage
mm tools.






























posted on 2012-09-02 01:16 Snape 阅读(1021) 评论(0)  编辑 收藏 引用 所属分类: CTCI_C++


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2012年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

my

搜索

最新评论

阅读排行榜

评论排行榜