Jiadong's profileGuiding StarPhotosBlogListsMore ![]() | Help |
老婆和老妈同时掉在了水里终于有答案了(ZT)孟子:
从小死了老爸,老妈拉扯我不容易,为了让我健康成长,又搬了三次的家,给我吃好的穿好的为得就是让我有出息。 老妈和老婆落水当然先救老妈了,万恶淫为首,百善孝为先嘛!老婆死了我可以再找一个,老妈死了可不能再找一个,再找一个那就是後妈了。听说後妈没几个好的。 ——————「世上只有妈妈好,没妈的孩子像根草。老妈,我来救你了」。扑通一声孟子跳下了水。
周幽王: 老婆和老妈落水了当然得先救老婆了。想当年俺为了逗亲爱的褒姒笑一笑,连江山都不要了,连自己的小命都不要了,何况是老妈? 再说这死老太婆在立太子的时侯老是偏向俺弟弟,害得俺差点都没当成太子。 ————「情深深雨蒙蒙,我对你的爱很深,褒姒我来救你了。」周幽王扑通一声跳进了水里。
刘备: 兄弟如手足,老婆如衣服,衣服破尚可补,手足断安可续?只要俺二弟和三弟没掉水里就行了,其它人俺可不管他。 —————「老婆,老妈。你们死的好惨呀!」刘备一头栽在河边上嚎嚎大哭起来。
曹操: 宁叫我负天下人,休叫天下人负我。管它是老婆还是老妈了,只要不是我掉水里就行了。 —————「轻轻的我走了,正如我轻轻的来,我挥一挥手,不带走一片云彩。」曹操哼著诗提著剑慢慢的走远了。
屈原: 这个世界太黑暗了,这个国家太腐败了,活著也没啥意思,不如都死了乾净,沧浪之水清兮,可以濯吾缨,沧浪之水浊兮,可以濯吾足。 投身于河水中倒是一个挺好的归宿。 --------「现在的一片天,是肮脏的一片天,星星在文明的天空里再也看不见老婆,老妈,我和你们一起死」屈原一边唱著一边跳进了水里。
庄子: 生又何欢,死又何哀?其始而本无生;非徒无生也,而本无形;非徒无形也。 老妈和老婆死了就死好了,不过是从有形的元气状态回到了无形的元气状态,有啥好伤心的呢?救他们干啥呢?谁都不救啦! —————「对面的女孩看过来,看过来,看过来。」庄子分开著双腿像簸箕一样坐著,手中拿著一个瓦缶,边敲边唱,看著老婆和老妈慢慢地淹没在水中,满脸快快乐乐的样子。
和砷: 老婆和老妈落水就落水吧,反正我爱的是钱,钱就是我的老婆,钱就是我的亲妈。 我说老婆和老妈呀,你们就不能穿差一点的衣服再掉到河里呀,可惜了你们头上的那些金钗手饰呀! -----------「有啥你别有病,没啥你别没钱。」和呻一边看著他老婆和老妈慢慢地沉下去一边叹息著。
王勃: 手心手背都是肉,老婆是自己最爱的人,老妈是自己最亲的人,怎么办呢?不管它,先跳下去,看看离谁最近就先救谁吧。 王勃扑通一声跳了下去。 ---------「不好,我忘了自己不会游泳了。」王勃咕噜噜地喝了几口水,也慢慢地沉了下去。一代才子王勃就是因为此事溺水而死的。
孙悟空: 俺是从石头缝里蹦出来的,没有老妈。所以不存在老妈落水的问题;俺是个和尚,没有老婆。所以不存在老婆落水的问题。 不存在老妈落水的问题,也不存在老婆落水的问题,就更不会存在老妈和老婆同时落水的问题。 这白痴的问题也不知道是哪个猪头想出来的,简直比俺师弟猪八戒还蠢。
女友跟人跑了,网友安慰楼主竟成如此!(ZT) 某论坛有一楼主伤心发贴,竟然引来一批网友安慰,然后形成如此结果……
原帖如下: 我和我老婆是大学里认识的,大2的时候,我们在同一个学院,故事很平常,朋友租房子我去帮忙抬东西,朋友的朋友也去帮忙,这样我就认识了朋友的朋友,也就是老婆。 大学的生活很快,日子过去。我是个穷人,家里没有钱,父母以前是工人,现在下岗了在外打工,虽然穷,但是日子过得很快乐,我和老婆也是一样,最让她感动的是 2003年我节约钱给她买了她很喜欢的那双 NIKE的鞋,她很感动,那时候我也觉得自己很幸福。 她的家庭情况也一般,她说以后想考公务员,而我刚上大四时去了一个房屋公司兼职做了个小职员,一个月1500。一切看来都很好。我是成都人,老婆重庆的。我在重庆读大学自然就在重庆的工作了,公司在两路口,那时候我和老婆计划着以后奋斗的生活。 风云突变,就在大四的下学期,在毕业来临的日子里,我们和中国农业大学进行友好学生活动。她认识了里面一个大四的上海人。那天活动我也去了,我见到了那个上海人,带着个傻忽忽的眼睛,可是一看那小样就有点钱。二天后,老婆就搬出了我们租的房子。只是匆匆的来了个电话和一封信,大概意思是对我道歉,还叫我努力,鼓励我去面对未来美好的生活。 那一时刻我的头都炸了,没有伤心的感觉,只是觉得脑袋空空的,后来她的朋友来告诉我,那个上海人很有钱,有车有房子,家里还有船。那天上海人陪她坐车出去到了,大概是到瓷器口方向有一段路不好,那上海人就出了钱找几个民工买材料把那段路修好,就这一举动彻底征服了我老婆。 在我看来这纯粹的无聊花钱行为中,老婆没有了,毕业典礼的时候她已经在和那个上海人软语开心的聊天了。我觉得自己很失败,那天晚上我坐在通往到解放杯的公交车上,在最后一排我终于忍不住哭了。 事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途。有时我常常笑我自己是井底之蛙,1500元要多少年才能买车买房,没有钱哪来的浪漫?让人跟你受穷?人家上海人有钱就该娶美女,我这种穷鬼要是找到了美女那不是阻碍了先进生产力的发展方向?还怎么构建和谐社会? 每当有人提起她,我的心理都这样想着。 以下为其他网友安慰楼主的回帖,请欣赏: 某网友回复: 我是上海人,遭遇和 LZ一样.上个月我认识半年的女友和一个香港人跑了. 我收入还可以有房有车,但那HK人不但有房还有辆三菱的跑车,月薪有七八万,够我做大半年的了.最可气的是 ,我1.86她1.70那个矮子才1.60. 事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀. 希望能与LZ共勉 某网友回复: 我是香港人,遭遇和LZ一样.上个礼拜我认识才半个月的女友和一个日本鬼子跑了.我收入还可以,有房有车,还是三菱的跑车,月薪也有七八万,够 LZ做好几年的了.最可气的是,我1.60那个日本鬼子才1.55。事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ 共勉. 某网友回复: 我是火星人,遭遇和LZ一样.上个礼拜我认识才半个月的女友和哈雷慧星人跑了.我收入还可以,有房有车有飞碟,还有宇宙飞船空间站,月薪也有七八个兆。可是那哈雷慧星人开的是激光束啊!最可气的是,我0.55那个哈雷慧星人才0.5,事后想想也不怪她,人人都有追求幸福的权利 ,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ共勉. 某网友回复: 我是哈雷慧星人,遭遇和LZ一样上个礼拜我认识才半个月的女友和土星人跑了.我收入还可以,有房有车有飞碟,还有激光束,月薪也有七八个亿兆。可是那土星人开的是土星光环啊!最可气的是,我0.5那个土星人才0.05,事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ共勉. 某网友回复: 我是土星人,遭遇和LZ一样.上个礼拜我认识才半个月的女友和M78星云的奥特曼跑了.我收入还可以,有房有车有飞碟,有激光束,我还有土星光环作交通工具,月薪也有七八个万亿兆。可是那M78星云的奥特曼不用坐什么自己就能飞!最可气的是,我0.05那个奥特曼有400多米,事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ共勉. 某网友回复: 我是奥特曼,遭遇和LZ一样 .上个礼拜我认识才半个月的女友和一个重庆人跑了。我收入还可以,有房有车有星球,不用交通工具自己就会飞,翻个身就十万八千里,没有月薪,自己印钞。没办法,女友说我不是人。 Talking about 一 切 為 了孩 子 們Talking about Research Beyond Google: 119 Authoritative, Invisible, and Comprehensive Resources | OEDb
Quote
Talking about To Thine Own Self Be True
Originally from Jenny's Space Quote To Thine Own Self Be True 堆、栈、windows内存结构,以及堆性能问题(经典转贴,作者不详)
堆和栈的区别
一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区—常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区—存放函数体的二进制代码。 **例子程序
这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 = "123456"; 123456\0在常量区,p3在栈上。 static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); 分配得来得10和20字节的区域就在堆区。 strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。 }
二、堆和栈的理论知识 2.2 申请后系统的响应 2.3申请大小的限制 2.4申请效率的比较: 2.5堆和栈中的存储内容 2.6存取效率的比较
windows进程中的内存结构
接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeister)。每种变量都有不同的分配方式。先来看下面这段代码: #include <stdio.h> int g1=0, g2=0, g3=0; int main() //打印出各个变量的内存地址 printf("0x%08x\n",&v1); //打印各本地变量的内存地址 编译后的执行结果是: 0x0012ff78 0x004068d0 0x004068dc 输出的结果就是变量的内存地址。其中v1,v2,v3是本地变量,g1,g2,g3是全局变量,s1,s2,s3是静态变量。你可以看到这些变量在内存是连续分布的,但是本地变量和全局变量分配的内存地址差了十万八千里,而全局变量和静态变量分配的内存是连续的。这是因为本地变量和全局/静态变量是分配在不同类型的内存区域中的结果。对于一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。动态数据区一般就是“堆栈”。“栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种线性结构,堆是一种链式结构。进程的每个线程都有私有的“栈”,所以每个线程虽然代码一样,但本地变量的数据都是互不干扰。一个堆栈可以通过“基地址”和“栈顶”地址来描述。全局变量和静态变量分配在静态数据区,本地变量分配在动态数据区,即堆栈中。程序通过堆栈的基地址和偏移量来访问本地变量。
#include <stdio.h> void __stdcall func(int param1,int param2,int param3) int main() 编译后的执行结果是: 0x0012ff78 0x0012ff68
;--------------func 函数的汇编代码------------------- :00401000 83EC0C sub esp, 0000000C //创建本地变量的内存空间 ……………………(省略若干代码) :00401075 83C43C add esp, 0000003C ;恢复堆栈,回收本地变量的内存空间 ;-------------------函数结束-------------------------
:00401080 6A03 push 00000003 //压入参数param3 聪明的读者看到这里,差不多就明白缓冲溢出的原理了。先来看下面的代码: #include <stdio.h> void __stdcall func() int main() 编译后执行一下回怎么样?哈,“"0x00414141"指令引用的"0x00000000"内存。该内存不能为"read"。”,“非法操作”喽!"41"就是"A"的16进制的ASCII码了,那明显就是strcat这句出的问题了。"lpBuff"的大小只有8字节,算进结尾的\0,那strcat最多只能写入7个"A",但程序实际写入了11个"A"外加1个\0。再来看看上面那幅图,多出来的4个字节正好覆盖了RET的所在的内存空间,导致函数返回到一个错误的内存地址,执行了错误的指令。如果能精心构造这个字符串,使它分成三部分,前一部份仅仅是填充的无意义数据以达到溢出的目的,接着是一个覆盖RET的数据,紧接着是一段shellcode,那只要着个RET地址能指向这段shellcode的第一个指令,那函数返回时就能执行shellcode了。但是软件的不同版本和不同的运行环境都可能影响这段shellcode在内存中的位置,那么要构造这个RET是十分困难的。一般都在RET和shellcode之间填充大量的NOP指令,使得exploit有更强的通用性。
#include <stdio.h> void func() void main() 程序执行结果为: 0x004107d0 可以发现用new关键字分配的内存即不在栈中,也不在静态数据区。VC编译器是通过windows下的“堆(heap)”来实现new关键字的内存动态分配。在讲“堆”之前,先来了解一下和“堆”有关的几个API函数: HeapAlloc 在堆中申请内存空间 当进程初始化时,系统会自动为进程创建一个默认堆,这个堆默认所占内存的大小为1M。堆对象由系统进行管理,它在内存中以链式结构存在。通过下面的代码可以通过堆动态申请内存空间: HANDLE hHeap=GetProcessHeap(); 其中hHeap是堆对象的句柄,buff是指向申请的内存空间的地址。那这个hHeap究竟是什么呢?它的值有什么意义吗?看看下面这段代码吧: #pragma comment(linker,"/entry:main") //定义程序的入口 _CRTIMP int (__cdecl *printf)(const char *, ...); //定义STL函数printf 执行结果为: 0x00130000 hHeap的值怎么和那个buff的值那么接近呢?其实hHeap这个句柄就是指向HEAP首部的地址。在进程的用户区存着一个叫PEB(进程环境块)的结构,这个结构中存放着一些有关进程的重要信息,其中在PEB首地址偏移0x18处存放的ProcessHeap就是进程默认堆的地址,而偏移0x90处存放了指向进程所有堆的地址列表的指针。windows有很多API都使用进程的默认堆来存放动态数据,如windows 2000下的所有ANSI版本的函数都是在默认堆中申请内存来转换ANSI字符串到Unicode字符串的。对一个堆的访问是顺序进行的,同一时刻只能有一个线程访问堆中的数据,当多个线程同时有访问要求时,只能排队等待,这样便造成程序执行效率下降。 最后来说说内存中的数据对齐。所位数据对齐,是指数据所在的内存地址必须是该数据长度的整数倍,DWORD数据的内存起始地址能被4除尽,WORD数据的内存起始地址能被2除尽,x86 CPU能直接访问对齐的数据,当他试图访问一个未对齐的数据时,会在内部进行一系列的调整,这些调整对于程序来说是透明的,但是会降低运行速度,所以编译器在编译程序时会尽量保证数据对齐。同样一段代码,我们来看看用VC、Dev-C++和lcc三个不同编译器编译出来的程序的执行结果: #include <stdio.h> int main() 这是用VC编译后的执行结果: 这是用Dev-C++编译后的执行结果: 这是用lcc编译后的执行结果: 三个编译器都做到了数据对齐,但是后两个编译器显然没VC“聪明”,让一个char占了4字节,浪费内存哦。
摘要: 讨论常见的堆性能问题以及如何防范它们。(共 9 页) 前言 什么是堆? 在程序中,使用堆来动态分配和释放对象。在下列情况下,调用堆操作: 事先不知道程序所需对象的数量和大小。 对象太大而不适合堆栈分配程序。
GlobalAlloc/GlobalFree:Microsoft Win32 堆调用,这些调用直接与每个进程的默认堆进行对话。 LocalAlloc/LocalFree:Win32 堆调用(为了与 Microsoft Windows NT 兼容),这些调用直接与每个进程的默认堆进行对话。 COM 的 IMalloc 分配程序(或 CoTaskMemAlloc / CoTaskMemFree):函数使用每个进程的默认堆。自动化程序使用“组件对象模型 (COM)”的分配程序,而申请的程序使用每个进程堆。 C/C++ 运行时 (CRT) 分配程序:提供了 malloc() 和 free() 以及 new 和 delete 操作符。如 Microsoft Visual Basic 和 Java 等语言也提供了新的操作符并使用垃圾收集来代替堆。CRT 创建自己的私有堆,驻留在 Win32 堆的顶部。 Windows NT 中,Win32 堆是 Windows NT 运行时分配程序周围的薄层。所有 API 转发它们的请求给 NTDLL。 Windows NT 运行时分配程序提供 Windows NT 内的核心堆分配程序。它由具有 128 个大小从 8 到 1,024 字节的空闲列表的前端分配程序组成。后端分配程序使用虚拟内存来保留和提交页。 在图表的底部是“虚拟内存分配程序”,操作系统使用它来保留和提交页。所有分配程序使用虚拟内存进行数据的存取。 分配和释放块不就那么简单吗?为何花费这么长时间? 堆实现的注意事项 当应用程序或 DLL 创建私有堆时,这些堆存在于进程空间,并且在进程内是可访问的。从给定堆分配的数据将在同一个堆上释放。(不能从一个堆分配而在另一个堆释放。) 在所有虚拟内存系统中,堆驻留在操作系统的“虚拟内存管理器”的顶部。语言运行时堆也驻留在虚拟内存顶部。某些情况下,这些堆是操作系统堆中的层,而语言运行时堆则通过大块的分配来执行自己的内存管理。不使用操作系统堆,而使用虚拟内存函数更利于堆的分配和块的使用。 典型的堆实现由前、后端分配程序组成。前端分配程序维持固定大小块的空闲列表。对于一次分配调用,堆尝试从前端列表找到一个自由块。如果失败,堆被迫从后端(保留和提交虚拟内存)分配一个大块来满足请求。通用的实现有每块分配的开销,这将耗费执行周期,也减少了可使用的存储空间。 Knowledge Base 文章 Q10758,“用 calloc() 和 malloc() 管理内存” (搜索文章编号), 包含了有关这些主题的更多背景知识。另外,有关堆实现和设计的详细讨论也可在下列著作中找到:“Dynamic Storage Allocation: A Survey and Critical Review”,作者 Paul R. Wilson、Mark S. Johnstone、Michael Neely 和 David Boles;“International Workshop on Memory Management”, 作者 Kinross, Scotland, UK, 1995 年 9 月( Windows NT 的实现(Windows NT 版本 4.0 和更新版本) 使用了 127 个大小从 8 到 1,024 字节的 8 字节对齐块空闲列表和一个“大块”列表。“大块”列表(空闲列表[0]) 保存大于 1,024 字节的块。空闲列表容纳了用双向链表链接在一起的对象。默认情况下,“进程堆”执行收集操作。(收集是将相邻空闲块合并成一个大块的操作。)收集耗费了额外的周期,但减少了堆块的内部碎片。 单一全局锁保护堆,防止多线程式的使用。(请参见“Server Performance and Scalability Killers”中的第一个注意事项, George Reilly 所著,在 “MSDN Online Web Workshop”上(站点: 什么是常见的堆性能问题? 分配操作造成的速度减慢。光分配就耗费很长时间。最可能导致运行速度减慢原因是空闲列表没有块,所以运行时分配程序代码会耗费周期寻找较大的空闲块,或从后端分配程序分配新块。
堆破坏造成的速度减慢。造成堆破坏的原因是应用程序对堆块的不正确使用。通常情形包括释放已释放的堆块或使用已释放的堆块,以及块的越界重写等明显问题。(破坏不在本文讨论范围之内。有关内存重写和泄漏等其他细节,请参见 Microsoft Visual C++(R) 调试文档 。)
在所有的服务器系统中(如 IIS、MSProxy、DatabaseStacks、网络服务器、 Exchange 和其他), 堆锁定实在是个大瓶颈。处理器数越多,竞争就越会恶化。 尽量减少堆的使用 如何减少使用堆操作?通过利用数据结构内的位置可减少堆操作的次数。请考虑下列实例: struct ObjectA { struct ObjectB { // 同时使用 objectA 和 objectB // // // struct ObjectX { 避免使用指针关联两个数据结构。如果使用指针关联两个数据结构,前面实例中的对象 A 和 B 将被分别分配和释放。这会增加额外开销—我们要避免这种做法。
正确使用 _amblksiz。C 运行时 (CRT) 有它的自定义前端分配程序,该分配程序从后端(Win32 堆)分配大小为 _amblksiz 的块。将 _amblksiz 设置为较高的值能潜在地减少对后端的调用次数。这只对广泛使用 CRT 的程序适用。 其他提高性能的技术 使用 Windows NT5 堆 改进了堆代码内的锁定。堆代码对每堆一个锁。全局锁保护堆数据结构,防止多线程式的使用。但不幸的是,在高通信量的情况下,堆仍受困于全局锁,导致高竞争和低性能。Windows 2000 中,锁内代码的临界区将竞争的可能性减到最小,从而提高了可伸缩性。
上述改进已在 Windows 2000 beta 2 和 Windows NT 4.0 SP4 中使用。改进后,堆锁的竞争率显著降低。这使所有 Win32 堆的直接用户受益。CRT 堆建立于 Win32 堆的顶部,但它使用自己的小块堆,因而不能从 Windows NT 改进中受益。(Visual C++ 版本 6.0 也有改进的堆分配程序。) 使用分配高速缓存 典型地,自定义堆分配程序在进程堆的顶部实现。自定义堆分配程序与系统堆的行为很相似。主要的差别是它在进程堆的顶部为分配的对象提供高速缓存。高速缓存设计成一套固定大小(如 32 字节、64 字节、128 字节等)。这一个很好的策略,但这种自定义堆分配程序丢失与分配和释放的对象相关的“语义信息”。 与自定义堆分配程序相反,“分配高速缓存”作为每类分配高速缓存来实现。除能够提供自定义堆分配程序的所有好处之外,它们还能够保留大量语义信息。每个分配高速缓存处理程序与一个目标二进制对象关联。它能够使用一套参数进行初始化,这些参数表示并发级别、对象大小和保持在空闲列表中的元素的数量等。分配高速缓存处理程序对象维持自己的私有空闲实体池(不超过指定的阀值)并使用私有保护锁。合在一起,分配高速缓存和私有锁减少了与主系统堆的通信量,因而提供了增加的并发、最大限度的重用和较高的可伸缩性。 需要使用清理程序来定期检查所有分配高速缓存处理程序的活动情况并回收未用的资源。如果发现没有活动,将释放分配对象的池,从而提高性能。 可以审核每个分配/释放活动。第一级信息包括对象、分配和释放调用的总数。通过查看它们的统计信息可以得出各个对象之间的语义关系。利用以上介绍的许多技术之一,这种关系可以用来减少内存分配。 分配高速缓存也起到了调试助手的作用,帮助您跟踪没有完全清除的对象数量。通过查看动态堆栈返回踪迹和除没有清除的对象之外的签名,甚至能够找到确切的失败的调用者。 MP 堆 本程序包是好的步骤 —一种改进的 MP-友好的自定义堆分配程序。但是,它不提供语义信息和缺乏统计功能。通常将 MP 堆作为 SDK 库来使用。如果使用这个 SDK 创建可重用组件,您将大大受益。但是,如果在每个 DLL 中建立这个 SDK 库,将增加工作设置。 重新思考算法和数据结构 减少需要的小对象的数量减少堆分配程序的负载。例如,我们在服务器的关键处理路径上使用五个不同的对象,每个对象单独分配和释放。一起高速缓存这些对象,把堆调用从五个减少到一个,显著减少了堆的负载,特别当每秒钟处理 1,000 个以上的请求时。 如果大量使用“Automation”结构,请考虑从主线代码中删除“Automation BSTR”,或至少避免重复的 BSTR 操作。(BSTR 连接导致过多的重分配和分配/释放操作。) 摘要 评价您的代码中堆的使用。
THE END 终于面世了。在今年3月到7月这将近半年的时间里,我所有的工作都在这里了。最上边的Internet Explorer 6 for Windows Embedded CE这部分。(就是不知道为什么这种文档里居然还有单词拼写、语法等低级错误。确实,不是第一次发现某些老外干的活实在有待商榷。)
做的事很小,能够影响到的人也很少很少,这是我的工作。每天忙忙碌碌,做着微不足道的事情,生活也许就是这样。
无论如何,看着这点东西总还是有安慰的感觉。
几乎忘了这里。没有时间安静下来好好想想自己所追求的是什么
前面是什么样的生活在等着我,我要将它如何改变。
我为什么还是在这个待了7年还是觉得陌生的城市
为什么我坚持着远离亲人、远离爱人。
梦想之所以成为梦想,因为它永远无法实现
我的梦是不是太多了。
为什么收到promotion mail却一点兴奋的感觉都没有
人说生活总是会时而对你微笑。是我视而不见还是我在拒绝。
--你好吗?想说这句话,想看你的脸。
老板说,工作是做不完的,即使1天给你48个小时
so... don't take your notebook back home, take vacation between whiles, enjoy your family, share life with friends...etc.
可是很多时候根本由不得你。因此某些话挂在嘴边,that's fine. 但不要付诸行动。
那天我忽然发现今年是第十年
是的,我们相识十年了
你说,确实,很多人你认识十年了,还有更多的人你认识二十年了。
那次我躺在海面上,随着海浪起伏,我完全放开了自己,感觉很不错。
很想什么都不去想,什么都不理。可是,
00110100111110110000101111101010000101000...
传说中的IPHONE前几天老板带过来一个iphone,有机会深刻体验竞争对手的这款so coooool的...不是phone,也不是微型pc, it's an innovation。
毫无疑问当初windows mobile带给我很大震撼。而iphone带给我的决不是“震撼”能形容的。
apple所追求的core values总是能带给我们最好的user experience。apple在告诉我们什么叫AMAZING:
**horizental/vertical detection
**multi-touch
***Smart & Simple
*rich web browsing
zoom everywhere & everything
iTunes & YouTube built in
...
即使我更关心的是结合iphone的safari,但无论如何也没办法bypass其他的一切。
so what should we do next...
_千字文 千字文
周兴嗣 [粱] 敕员外散骑侍郎 周兴嗣 撰 天地玄黄 宇宙洪荒 日月盈昃 辰宿列张 寒来暑往 秋收冬藏 闰馀成岁 律吕调阳 云腾致雨 露结为霜 金生丽水 玉出昆冈 剑号巨阙 珠称夜光 果珍李柰 菜重芥姜 海咸河淡 鳞潜羽翔 龙师火帝 鸟官人皇 始制文字 乃服衣裳 推位让国 有虞陶唐 吊民伐罪 周发殷汤 坐朝问道 垂拱平章 爱育黎首 臣伏戎羌 遐迩一体 率宾归王 鸣凤在竹 白驹食场 化被草木 赖及万方 盖此身发 四大五常 恭惟鞠养 岂敢毁伤 女慕贞洁 男效才良 知过必改 得能莫忘 罔谈彼短 靡恃己长 信使可复 器欲难量 墨悲丝染 诗赞羔羊 景行维贤 克念作圣 德建名立 形端表正 空谷传声 虚堂习听 祸因恶积 福缘善庆 尺璧非宝 寸阴是竞 资父事君 曰严与敬 孝当竭力 忠则尽命 临深履薄 夙兴温凊 似兰斯馨 如松之盛 川流不息 渊澄取映 容止若思 言辞安定 笃初诚美 慎终宜令 荣业所基 籍甚无竟 学优登仕 摄职从政 存以甘棠 去而益咏 乐殊贵贱 礼别尊卑 上和下睦 夫唱妇随 外受傅训 入奉母仪 诸姑伯叔 犹子比儿 孔怀兄弟 同气连枝 交友投分 切磨箴规 仁慈隐恻 造次弗离 节义廉退 颠沛匪亏 性静情逸 心动神疲 守真志满 逐物意移 坚持雅操 好爵自縻 都邑华夏 东西二京 背邙面洛 浮渭据泾 宫殿盘郁 楼观飞惊 图写禽兽 画彩仙灵 丙舍傍启 甲帐对楹 肆筵设席 鼓瑟吹笙 升阶纳陛 弁转疑星 右通广内 左达承明 既集坟典 亦聚群英 杜稿钟隶 漆书壁经 府罗将相 路侠槐卿 户封八县 家给千兵 高冠陪辇 驱毂振缨 世禄侈富 车驾肥轻 策功茂实 勒碑刻铭 磻溪伊尹 佐时阿衡 奄宅曲阜 微旦孰营 桓公匡合 济弱扶倾 绮回汉惠 说感武丁 俊乂密勿 多士寔宁 晋楚更霸 赵魏困横 假途灭虢 践土会盟 何遵约法 韩弊烦刑 起翦颇牧 用军最精 宣威沙漠 驰誉丹青 九州禹迹 百郡秦并 岳宗泰岱 禅主云亭 雁门紫塞 鸡田赤城 昆池碣石 巨野洞庭 旷远绵邈 岩岫杳冥 治本于农 务资稼穑 俶载南亩 我艺黍稷 税熟贡新 劝赏黜陟 孟轲敦素 史鱼秉直 庶几中庸 劳谦谨敕 聆音察理 鉴貌辨色 贻厥嘉猷 勉其祗植 省躬讥诫 宠增抗极 殆辱近耻 林皋幸即 两疏见机 解组谁逼 索居闲处 沉默寂寥 求古寻论 散虑逍遥 欣奏累遣 戚谢欢招 渠荷的历 园莽抽条 枇杷晚翠 梧桐蚤凋 陈根委翳 落叶飘摇 游鹍独运 凌摩绛霄 耽读玩市 寓目囊箱 易輶攸畏 属耳垣墙 具膳餐饭 适口充肠 饱饫烹宰 饥厌糟糠 亲戚故旧 老少异粮 妾御绩纺 侍巾帷房 纨扇圆絜 银烛炜煌 昼眠夕寐 蓝笋象床 弦歌酒宴 接杯举觞 矫手顿足 悦豫且康 嫡后嗣续 祭祀烝尝 稽颡再拜 悚惧恐惶 笺牒简要 顾答审详 骸垢想浴 执热愿凉 驴骡犊特 骇跃超骧 诛斩贼盗 捕获叛亡 布射僚丸 嵇琴阮啸 恬笔伦纸 钧巧任钓 释纷利俗 竝皆佳妙 毛施淑姿 工颦妍笑 年矢每催 曦晖朗曜 璇玑悬斡 晦魄环照 指薪修祜 永绥吉劭 矩步引领 俯仰廊庙 束带矜庄 徘徊瞻眺 孤陋寡闻 愚蒙等诮 谓语助者 焉哉乎也 _:千字文共1000字,只有1个字出现一次重复
八月飞雪最近北京一直下雨。昨儿我就和同事念叨这天要下雪就好了。
到下午真下起雪来了。很让我崩溃。
虽然是在很小的范围内下了很小的雪。 有冤情是肯定的。
房地产是谁的噩梦
本文以最浅显得道理阐述经济的原理,进而阐述经济的真相。不会有任何所谓的学术妓女们常用来欺骗人民的深奥的学术理论,还事实以清白,真相只有一个,让我们擦亮眼睛,洞观今天发生的一切。 ****************************************************************************** 9、在有关这场围绕房价和通货膨胀之间的各方博弈中可能选择的中庸路线 梦。昨儿做一梦。
梦见我有了两个儿子,好像刚出生不久,很好玩。
可是很奇怪,两人都很小,我居然把那哥俩放在我口袋里。(我又不是袋鼠,是袋鼠也应该是母袋鼠干的事啊
再后来我就带着他们满世界跑。就是没看到他们的妈妈。。 搬家。明儿就搬家了。收拾完东西。挺喜欢这个座位。留个影。
图片被我注释掉了,'View Source'可以找到图片 改革。REVOLUTION。。。
最后,送上阿汤哥夫妇,小贝夫妇和他们的小小贝们
#23 Daddy
Smmary of Manchester United in Season 2006/07
Manchester United Team Statistics http://upload1.6to23.com/citypic/2007/06/20070619204116_741.jpg Player Statistics of United http://upload1.6to23.com/citypic/2007/06/20070619203127_915.jpg Scorers of MU http://upload1.6to23.com/citypic/2007/06/20070619203349_726.jpg Cristiano Ronaldo's Record http://upload1.6to23.com/citypic/2007/06/20070619203229_969.jpg All Matches http://upload1.6to23.com/citypic/2007/06/20070619203054_385.jpg Reference:
http://upload1.6to23.com/citypic/2007/06/20070619203008_943.jpg
http://upload1.6to23.com/citypic/2007/06/20070619203315_848.jpg
周末。果然又被导游骗了。号称3个半小时的路程走了5个半小时。到宾馆时脖子歪了,四肢麻木,屁股酸疼,总之是兴致大减。 途中遇见两起交通事故,一个擦边球,一个肉夹馍。
还有一倒霉蛋因为把车开到应急车道,而刚好有交警出来处理事故,还大摇大摆地挡着交警不让过,后来被交警把本给扣了。
吃完正餐,向目的地翡翠岛出发。这次导游小姐说半小时就到,哪知又走了超过一个小时,崩溃。
还好传说中的黄金海岸没让人失望。瞅着海浪发呆,很想再游远一点,可惜我这三脚猫的水性,恐怕有去无回。
秦皇岛的空气比北京好多了,气候也很好。也难怪有那么多疗养院。
回去路上看到N框鸡蛋洒在马路上,见过水泥路、沥青路,头一回见鸡蛋路。。估摸是某装鸡蛋的车撞猪了。
第二天先是坐一小破船(美其名曰为豪华游轮)出海。后随渔民打鱼,差点自己成了鱼。
在海边休息片刻后,打点行装回北京。
(又碰到交通事故,确实天天在发生,汽车,,太不安全。。看起来我害怕坐汽车是很符合现实的。)
Let's be friendsDog, Squirrel and Bird
Dog and Chicken
Hippo and Turtle
Deer and Dog
"Daddy, let's play horsey!"
Cat and Turtle
Cat and Moose
Cat and Dog
Funny? |
|
|