Work_Note
xiaolomg
学习无止境
展开
-
C++包含stl容器后的大小
如果一个类里包含stl的容器,初始内存占用有多少呢?就是new一次需要分配多少内存?做了jia原创 2014-06-18 07:38:50 · 1179 阅读 · 0 评论 -
汇编语言第一张笔记
计算机芯片运行时,它读取存储在内存中的指令码(一个或多个字节,指示处理器完成某个任务),指令码所需数据在内存中,也从内存中读取。以指针区别数据和指令码。instruction pointer用于帮助处理器理解哪些指令码已经处理过,接着处理哪些;包括改变指令指针位置的指令。数据指针data pointer帮助处理器了解内存中数据区域(堆栈)的起始位置。数据进入,指针“向下移动”。原创 2013-01-30 11:25:36 · 1080 阅读 · 0 评论 -
工作小结
软件最重要的是稳定性,其次是功能。保证在任何情况下都不会crush至关重要,对各种异常情况的考虑很重要,当然需要测试的帮忙;对于功能,要考虑到所有情况下功能都能正常运行,保证安全;当出现bug的快速分析,定位和解决是很重要的;首先分析log,大概定位;然后参阅相关代码,凡是涉及这个bug的代码都要仔细看,是不是逻辑错误,或者是异常情况没做检查;如果难于定位,可以多打log帮助分析;当然原创 2012-12-21 20:30:05 · 804 阅读 · 0 评论 -
Good books in list
It is just a list of books found:1.C++ Concurrency in Action.A nice socket :ibev:Marc Alexander LehmannMarc Lehmann是libev,libeio的作者,也是众多Perl事件模块的作者。这个视频是我第一次听德国人说英语,恍惚觉得像是阿三哥的口音。可能是考虑到台下听众原创 2012-12-11 14:55:31 · 725 阅读 · 0 评论 -
API分类
现在市场上用的比较多的是:OMNet API和OMex API。OMnet Purpose:OMnet has two major purposes:1.为可信源提供OMex中心系统的验证交易。2. To distribute market information efficiently.OMnet Functionality1. Login functiona原创 2013-01-03 21:15:00 · 2197 阅读 · 0 评论 -
多线程问题
最近遇到一个bug,就是存到disk的文件读进来是乱码,序列化不会有问题,而且检查过了,的确木有问题;那肯定就是存的时候数据乱了,可以肯定是多线程问题,之前遇到的就是线程问题,但是对于同一个函数,分不同阶段,开始的时候因为一个业务线程在处理请求,一个工作线程在处理数据;所以就会有race的问题;但之后的操作都是在一个线程,不会有race问题,如果在整个过程都加锁,那之后的阶段都是多余的,而且影原创 2013-01-02 22:01:37 · 755 阅读 · 0 评论 -
C++大规模程序设计
公司有这本书的英文版的,何奈偶对英文书籍不怎么感冒,放在桌上好久没看;今天没啥事,看了会,中文电子版的,不过质量不是很好;里面对今后工作挺有用的,决定看完;能在淘宝上找到一本就好了;但眼下还是在本本上慢慢看吧。原创 2012-12-17 22:38:12 · 925 阅读 · 0 评论 -
移植32位程序到64位时碰到精度问题
有那么一段代码,在 32位系统中正常编译通过,但是在64位系统中编译却碰到问题:12345 void * ThreadWrite(void * lpParameter){int idx = (int)lpParameter;// ...}研究了一下,发现 64位系统和 32位系统中 int 类型都是 32位的,但是 64位系统的指针长度是 64位,但是在转载 2012-12-17 10:01:04 · 1835 阅读 · 0 评论 -
多线程用了需谨慎
虽然没有看过多少多线程的东西,但项目中的确在不停地投递;一般request和answer分开处理是合理的,也是应该的,这样比较有效率;但是如果没有处理好就会出现意想不到的问题;上周把问题扩展了,结果今天测试就出现了问题;仔细分析发现是线程问题,原子操作啊,哈哈,在源头把事件给投递出去,不能分别投递,反正测试是出问题,根源我还木有搞清楚,反正算是解决了。以后好好看win32多线程原创 2012-12-24 22:14:48 · 790 阅读 · 0 评论 -
整数二进制输出
今天遇到一个问题需要将uint_32以二进制输出,网上查了一下,原来可以这么写:#include#includeint main(){ int c=5; std::bitset lBit(c); std::cout<<lBit<<"\n"; return 0;}但项目需要,可以这么输出:#include#include#include int main(){原创 2012-12-10 21:34:01 · 872 阅读 · 0 评论 -
创建多级目录
mkdir这个函数可以创建单个文件,但是创建 多个还是个问题。#include #include#include using namespace std;using namespace boost::filesystem;int main(){ path lPtest("test2/hailong/sub1/sub3"); create_directories(lPtest原创 2012-11-16 22:09:34 · 3151 阅读 · 0 评论 -
builder模式
用starUML画了类图:原创 2012-11-05 21:54:42 · 943 阅读 · 0 评论 -
Order Book, Level 2 Market Data, and Depth of Market
One of the tools that day traders use to make their trades is the market data for their markets. The market data includes information about the prices, and the completed trades for the market, and i翻译 2012-11-04 19:26:45 · 2311 阅读 · 0 评论 -
boost microseconds to Ptime
1.from_time_t(millis / 1000) + millisec(millis % 1000)2.ptime epoch_milliseconds_to_ptime(unsigned long int ms){ const ptime epoch(date(1970, 1, 1)); return epoch + milliseconds(ms);}原创 2012-09-25 10:13:09 · 1225 阅读 · 0 评论 -
char*转化为hex string输出
#include #include using namespace std;string dump_block(const char* aInStr,int len){ const char HEX[] = "0123456789ABCDEF"; std::string lStr; for(int i=0; i < len; i++) { char lTemp = aIn原创 2013-04-11 21:00:40 · 6969 阅读 · 0 评论 -
linux下cmake编译C++工程之总结篇
昨天正式把项目编译完成,经历了一周的摸索和折磨后,最后也想:oh,it's so easy!但是过程确实困难的,因为cmake官方只有API的解释,而且解释的不是很清楚。一般项目都是狠复杂的层级关系projectincludelibbinproject1project2project3....这种如何来写cmake呢?首先要知道一个很重要的东西,cm原创 2014-04-29 13:29:26 · 7586 阅读 · 0 评论 -
最近的一点工作总结
从3月份进入这家游戏公司,做了各种功能,原创 2014-06-15 22:51:09 · 898 阅读 · 0 评论 -
依赖boost库的AysnLogging
今天花了一上午时间,写了个异步日志库,优点是:够简单,只有几个文件原创 2014-07-03 21:08:29 · 961 阅读 · 0 评论 -
在ubuntu下写博客
最近折腾在win7上安装了双系统原创 2014-06-12 23:05:11 · 1122 阅读 · 0 评论 -
整数类型的hashfun
引用自 https://gist.github.com/badboy/6267743Original link: http://www.concentric.net/~Ttwang/tech/inthash.htmTaken from:http://web.archive.org/web/20071223173210/http://www.concentric.net/~Ttwan转载 2014-06-25 20:53:30 · 1804 阅读 · 0 评论 -
A* 寻路算法
译文地址:http://www.cppblog.com/christanxw/archive/2006/04/07/5126.html原文地址: http://www.gamedev.net/reference/articles/article2003.asp概述虽然掌握了 A* 算法的人认为它容易,但是对于初学者来说, A* 算法还是很复杂的。搜索区域(The Search转载 2014-04-29 06:52:40 · 1122 阅读 · 0 评论 -
vim笔记
慢慢开始使用VIM,慢慢积累经验。vimzuiliubi原创 2014-05-12 07:01:39 · 842 阅读 · 0 评论 -
ubuntu server下SVN server配置
启动服务器: svnserve -d -r ~svn原创 2014-04-23 09:48:37 · 1221 阅读 · 0 评论 -
ubuntu server下调用boost::filesystem失败
会看到一大堆错误:/usr/include/boost/thread/pthread/thread_data.hpp: In constructor ‘boost::detail::tss_data_node::tss_data_node(boost::shared_ptr, void*)’:/usr/include/boost/thread/pthread/thread_data.hpp:原创 2014-04-27 13:30:55 · 1845 阅读 · 0 评论 -
permake4 linux编译C++项目
首先下载premake4,然后解压放到/usr/bin目录下,再建立软链接,就可以用了。原创 2014-04-23 12:24:16 · 1657 阅读 · 0 评论 -
开方运算的消耗
看到服务器做碰撞检测居然用原创 2014-04-22 10:17:11 · 1631 阅读 · 0 评论 -
跨平台编译问题
这两天在做跨平台编译,略抓狂,windows的东西要在linuxxia原创 2014-04-24 17:34:49 · 1626 阅读 · 0 评论 -
Using Binary Heaps in A* Pathfinding
By Patrick Lester ( Updated April 11, 2003)This article is a sidebar for my main article, “A* Pathfinding for Beginners.” You should read that article, or understand A* thoroughly, before procee转载 2014-04-29 20:45:11 · 932 阅读 · 0 评论 -
UTC to CET
UTC / GMT +2 hours原创 2012-10-15 11:34:34 · 1175 阅读 · 0 评论 -
cmd命令
受不了了,记性太差;每次用命令行到指定文件的 方法 都会忘记,这次坐下记录吧:打开CMD 命令窗口依次输入:C:> E: (回车)E:>CD 文件夹名字然后继续cd E:有图有真相:原创 2012-10-14 21:37:42 · 1427 阅读 · 0 评论 -
BOOST.SERIALIZE序列化对象
#include #include #include #include #include using namespace std;class Data{ friend class boost::serialization::access; _int64 m_data; template void serialize( Archive& ar, const un转载 2012-09-17 23:04:40 · 1652 阅读 · 0 评论 -
The problem of UDP
如果在TCP链接会比较慢,UDP链接将会有不确定性,你会用那个?然而保证UDP可靠性有很多方法,选用哪个呢?UDP传输主要有四个问题:1.数据分片:UDP数据包包含有限信息。因此,我们常常需要将信息分为多个数据包,对于疑惑的分片需要重联。因为给定分片,我们需要唯一的标定分片数目。2.UDP数据包有时会丢失。如果我们没有接受到该收到的数据包,这时需要一种重传机制。3.翻译 2012-10-06 22:43:13 · 1545 阅读 · 1 评论 -
返回引用很危险
Meters大师说的很对,如果你通过memfun将private mem以引用或者指针形式暴漏出去,那么会有承担private mem变为public的风险,也就是说其他调用可以不经你允许类里面的private mem,当然这破坏你class应有的封装性,好吧,光说不练假把式,代码说明了问题:#include #include using namespace std;class Poi原创 2012-10-01 22:29:46 · 989 阅读 · 0 评论 -
EffectiveC++ Item28 test case
感觉好麻烦啊,调了半天终于可以run了,好吧,贴代码是我的风格:#include #include using namespace std;class Point{public: Point(){} Point(int x, int y):m_X(x),m_Y(y) { } int GetX()const { return m_X; } int GetY()co原创 2012-10-01 22:19:28 · 909 阅读 · 0 评论 -
Unix网络编程 chapter5 TCP回射服务器程序winsock改写
sever:#include"WinSock2.h"#include "time.h"#include "stdio.h"#include #include #pragma comment(lib,"WS2_32")using namespace std;const int MaxLine = 1024;char lBuf[MaxLine];short gPort =原创 2012-10-03 22:16:02 · 1172 阅读 · 0 评论 -
socket 时间查询
#include#include using namespace std;#pragma comment(lib, "WS2_32")int main(){ char lReadline[256]; int lRet = 0; WSADATA lWsaData; if ((lRet = WSAStartup(MAKEWORD(2,2), &lWsaData)) != 0)原创 2012-10-03 00:26:40 · 869 阅读 · 0 评论 -
winsock编程基础代码
在网上搜集的,如图unix网络编程的unp.h似的:#include #include #pragma comment(lib, "WS2_32")using namespace std;# define REQUEST_BACKLOG 5bool InitWSA( const WORD &wVersion, WSADATA *wsadata ){ int Ret = 0原创 2012-10-02 23:31:08 · 824 阅读 · 0 评论 -
Thread safety of google/dense_hash_map
一个可重入的函数。简单理解为可以被中断的函数。就是说,你可以在这个函数执行的任何时候中断他的运行,在任务调度下去执行另外一段代码而不会出现什么错误。而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等等,所以他如果被中断的话,可能出现问题,这类函数是不能运行在多任务环境下的。 基本上下面的函数是不可重入的 (1)函数体内使用了静态的数据结构; (2)函数体转载 2012-09-10 13:35:56 · 2271 阅读 · 0 评论 -
write to TinyXML
#include "tinyxml.h"#include "tinystr.h"#include int main(){ TiXmlDocument *pDoc; TiXmlElement *pRootElem; int num = 0; std::string m_FileName = "123.xml"; pDoc = new TiXmlDocument(m原创 2012-08-27 11:25:48 · 677 阅读 · 0 评论 -
忙碌
这周感觉很忙碌,晚上睡得很早,早上精神比较好;一周下来,发现新来的是要干苦力的;昨天写日志部分的代码搞得差点左手抽筋,两小时的左右环视+对比+copy+paste;表示这也算工作量吧。另外最大的感受是git的使用,这个版本管理器真是爽,再也不用怕代码会丢失了,当初在学校怎么没接触到呢?当然要会写command才是牛人,只是用gui的恐怕一直是菜鸟;原创 2012-08-25 10:31:18 · 609 阅读 · 0 评论