随笔-91  评论-137  文章-0  trackbacks-0
共2页: 1 2 
re: 外观模式 lwch 2011-05-27 07:58
@nscboy
设计模式就是这么定义的..
re: 代理模式 lwch 2011-05-16 20:16
@K.V
哪里诡异了...
re: 装饰模式 lwch 2011-05-06 16:07
@千暮(zblc)
截图下来貌似有点变色..
上图那个例子运行到一半崩掉了..
re: VS2010 SP1 MFC/C++新功能 lwch 2011-03-11 14:24
C++的确是没有什么特别大的更新了.
re: ESEngine_Demo5 lwch 2011-03-02 17:44
@陈梓瀚(vczh)
- -编译原理以前有几篇文章..
原始的就是简单..
int sum(MyStruct* objs, int offset, int count)
{
    
int result = 0;
    
for(int i = 0; i < count; ++i)
        result 
+= *(objs[i] + offset);
    
return result;
}

int sum_value = sum(me,&MyStruct::value,10);

int sum_key = sum(me,&MyStruct::key,10);
@陈梓瀚(vczh)
Node是在运行时生成的,要压缩的话还得遍历一遍..
@陈梓瀚(vczh)
这个问题还真没考虑过..惰性计算的确不是一件容易的事情..
但这个作为词法分析器已经足够
@陈梓瀚(vczh)
的确..没有理解组合这个概念..
新年快乐,再出好文章~~
@xx
还处于学习阶段,Linux0.00的代码比较短应此拿它来研究.
re: 编译项目跟踪文档(二) lwch 2010-11-02 18:31
用自顶向下的方法很容易对这类语法,运算符优先级越高就越先被归约..
没有检查缓冲区长度...
会造成溢出
re: 已实现LALR(1)分析器 lwch 2010-07-22 14:23
发现DFA生成的时候有点小问题,修改了一下...
采用新的算法生成DFA状态机,现在生成126个状态,408条边仅需1.1秒..
现在156个状态435条边Release版本需要15秒左右..
@陈梓瀚(vczh)
没算上IO时间,时间主要消耗在DFA的状态机生成上..
优化完Debug版本效率差不多提升了一半,Release版本差不多2,300毫秒
开启代码的完全优化Debug版本和之前相比提升了10倍左右..
算法主要时间基本都消耗在反复读取指针的值上
对这3种情况分别反汇编以后都得到以下结果
00401004 |. C745 FC 00000>mov dword ptr [ebp-4], 0
0040100B |. EB 09 jmp short 00401016
0040100D |> 8B45 FC /mov eax, dword ptr [ebp-4]
00401010 |. 83C0 01 |add eax, 1
00401013 |. 8945 FC |mov dword ptr [ebp-4], eax
00401016 |> 817D FC E8030> cmp dword ptr [ebp-4], 3E8
0040101D |. 7D 02 |jge short 00401021
0040101F |.^ EB EC \jmp short 0040100D

所以说优化后的效率是一样的
@jmchxy
比如后面的L"a"在变量a里则表达式成了
str += 'a' + a;
稍不注意就会出问题..
@陈梓瀚(vczh)
参照了你那篇写出来的..不过代码出入比较大..
共2页: 1 2