地标
街区
地标
实时动态在内存中编译汇编代码,并返回函数调用指针,可用于JIT系统的后端:
项目地址:http://code.google.com/p/asmpure/
例子:
const char *AlphaBlendAsm = "PROC C1:DWORD, C2:DWORD, A:DWORD\n" " movd mm0, A\n" " punpcklwd mm0, mm0\n" " punpckldq mm0, mm0\n" " pcmpeqb mm7, mm7\n" " psubw mm7, mm0\n" " \n" " punpcklbw mm1, C1\n" " psrlw mm1, 8\n" " punpcklbw mm2, C2\n" " psrlw mm2, 8\n" " \n" " pmullw mm1, mm7\n" " pmullw mm2, mm0\n" " paddw mm1, mm2\n" " \n" " psrlw mm1, 8\n" " packuswb mm1, mm1\n" " movd eax, mm1\n" " emms\n" " ret\n" "ENDP\n"; void testAlphaBlend(void) { CAssembler *casm; int c; int (*AlphaBlendPtr)(int, int, int); // create assembler casm = casm_create(); // append assembly source casm_source(casm, AlphaBlendAsm); AlphaBlendPtr = (int (*)(int, int, int))casm_callable(casm, NULL); if (AlphaBlendPtr == NULL) { printf("error: %s\n", casm->error); casm_release(casm); return; } printf("==================== Alpha Blend ====================\n"); casm_dumpinst(casm, stdout); printf("\nExecute code (y/n)?\n\n"); do { c = getch(); } while(c != 'y' && c != 'n'); if(c == 'y') { int x = AlphaBlendPtr(0x00FF00FF, 0xFF00FF00, 128); printf("output: %.8X\n\n", x); } free(AlphaBlendPtr); casm_release(casm); }
output: 7f7f7f7f
PowerPC于1991年IBM/MOTO/APPLE研制,大量应用于服务器(AIX / AS400系列及苹果系列服务器),家用游戏机(PS3, Wii, XBOX, GameCube),以及嵌入式(仅次于Arm/x86排第三)。PowerPC核心在于开放系统软件标准,其应用范围仅次于x86,是除去x86外最值得开发者了解的体系。
不需要写出非常高效的代码,但要了解基本效率原则;不需要大规模开发PPC程序,但需要时能写几段、调试时能看懂哪里错了。本文将从对比x86入手,引入RISC及PowerPC体系概念,向读者介绍该体系指令集,常用优化方法和交叉编译环境及模拟器的搭建等内容。
This is an enhanced SLAB algorithm implementation in application layer, which provides O(1) memory allocating and efficient memory recycling.
Since SUNOS has presented slab allocation theroy, many OSs have implemented slab in their kernel. But it requires kernel-layer interfaces such as page supply etc. So this library improves slab’s algorithm and brings the interfaces of slab into application layer.
项目位置:http://code.google.com/p/memslab/
原理叙述:
本朝太祖毛姓讳泽东字润之,湖南湘潭人氏。其寿诞之日为西夷之圣诞日。帝少有大志。未冠之时即作咏蛙诗,以述其志。及少壮,游学长沙,师从杨昌济,后入京,供职于京师太学藏书阁,问学于鸿儒陈仲甫、胡适之、李守常等。适之昔日留学于美夷,恃才傲物,因帝未忝科名,适之甚轻之。适之门生傅斯年、罗家纶之辈亦甚轻帝。后帝一统天下,欲灭群儒,盖因此三人故耳。帝受仲甫命,返湘结党,得仲甫提携,得以拜见于前朝太祖,官侍读学士。前朝太祖崩,时,前朝武厉帝为大司马大将军,阴结其党,欲灭帝党人。帝谏以兵击之,仲甫不许,武厉得以蓄积羽翼,民朝十六年武厉于松沪,前朝摄政王汪公于江夏,大杀帝党人。八月帝与诸党人会于汉口议事,帝曰:枪杆子里面出政权!众皆异之,后受命返湘,策反南军卢尔德铭部,九月九日兴兵起事,围长沙,不克,败走江西。军次三弯,帝重编余部,至队官皆有帝之党人监军。帝据井岗,与朱武胜公所部合兵,屡败官军,威名远扬,号朱毛军。武厉怒,令江西巡府鲁涤平统兵十万进剿,帝诱敌深入,引兵击之,涤平败,帝擒官军先锋总兵张辉瓒。武厉闻信,令兵部尚书何应钦统兵二十万进剿,帝大败之。武厉益恐,统兵三十万再战,又败于帝。一载余,武厉又率五十万劲旅进剿。时帝因党争,被削兵权,虚职赋闲。官军犯境红朝震恐,朱武公与周文正公掌兵权,问计于帝,帝授奇计再破官军。武厉败绩,再整旗鼓,以西夷部番将参赞军机,以百万之众犯境。时自俄狄归国之儒生博古辈摄政,番将李德与周文正公参赞军机,博古一儒生耳,挟俄狄酋斯大林之威,夺帝兵权,唯俄狄之命是从,事无巨细,皆听命于李德。李德辈纸上谈兵,屡战屡败。引兵西走,兵渡湘水,不足三万,众将皆恶李德,兵次遵义,诸将议政,帝之威众人咸服,周文正、朱武胜公皆附之,夺博古、李德兵权,帝得以再统雄兵。帝帅余部,转战滇、黔、川诸省。过雪山,与张国焘部合兵,国焘忌帝之官居其右,欲害帝,大将军叶剑英闻信,间道驰告帝,帝得脱。国焘部将陈昌浩欲引兵击帝,大将军徐向前拍案而起,国焘、昌浩乃罢。民朝二十四年入陕,据陕北以抗官军。官军进剿屡败于帝。帝令徐向前率所部西征,败于西北回军,丧师数万,向前等仅以身脱。丙子双十二,帝策反满洲王张公、陕西镇守使杨公兵谏,囚武厉,帝使周文正公谒武厉,晓以大义,武厉罢兵。
民朝二十六年夏,倭寇兵临幽州寻衅,幽州节度使宋与寇战,不克,败走保定,倭寇陷幽燕。帝令周文正公再谒武厉,武厉许以招安,北军三万余朱、彭为帅,南军两万余叶、项为帅,两军均受帝节制。合官军与倭寇血战八年,民朝三十四年倭寇败降,帝与周文正赴陪都谒武厉,共商国事。民朝三十六年兵火起,官军伐帝。帝令大将军林、罗取满洲,世祖与大将军刘取中原,大将军陈、粟取华东,大将军彭取西北,大将军聂取幽燕。诸军屡败官军。民朝三十七年大将军林、罗与官军战于满洲,大破之,尽占满洲地。世祖、大将军刘与陈、粟部合兵大破官军于徐蚌,陈兵长江,京师震恐。林、罗入关与大将军聂合兵,合围幽州,幽州节度使傅作义降。大将军彭横扫西北,兵临西域,帝移驾幽州,以之为都,改称北京,北方遂定。民朝乞和,帝不许,令世祖与刘、陈、粟诸将合百万众,渡长江,取金陵。以陈、粟取华东,林、罗取华中,世祖与刘将军取西南。诸军势如破竹,官军尽溃不成军。帝以世祖为西南节度使,坐镇成都,以图吐蕃。
武厉败走东海夷州,据澎湖以抗王化。民朝三十八年,太祖武帝开国元年,帝登天安门,诏告天下。帝定鼎,君临八方。初,倭寇败降,西夷美利坚助武厉以军资,以抗帝军,帝怒,斥之曰:美帝国主义都是纸老虎。开国元年作《别了,司徒雷登》以示美夷。开国二年高丽内乱,南高丽乞师西夷,美夷合西夷十五部落进兵北高丽,势如破竹,北高丽溃不成军。酋帅麦克阿瑟狂言饮马鸭绿水。北高丽酋长金日成乞师天朝,帝令西北王彭公为东征元帅,太子岸英监军。统兵二十五万,以将军邓华为先行,东征高丽。彭公与美夷战,大破之。开国三年,太子阵亡,帝大怒,令彭公进兵,美夷乞和,帝不许,彭公再战,五战五捷,阵斩酋帅沃克,天下皆慑于帝之威。开国五年,彭公平美夷于高丽,班师还朝。
开国初年,帝与周文正公巡幸北狄俄罗斯,与狄酋王斯大林盟,约为兄弟之邦。国经战乱,百废待兴,帝以刘殇公为太师摄政王,周文正公为相国。免天下钱粮。世祖平定西南,传檄吐蕃,吐蕃降。征西将军王震,进兵西域,前朝西域督护陶峙岳降。帝令官军平寇,前朝余孽星散。行三反、五反,斩天津知府刘青山等以清吏治,天下安定。开国九年行反右,帝定奇计曰:引蛇出洞。初令天下无论军民妇孺皆可谏国事,言政弊。后将直言者尽数收监,交有司论罪。天下儒生遂不敢以古讽今,枉谈国事。行大跃进,民不聊生,饿殍千里,三年饿毙两千余万口。俄狄发难,帝令翰林作文与俄狄论战。后会诸侯于庐山,彭公谏八万言书,帝怒,黜彭公,以林幽公代之。吐蕃达赖阴兵起事,帝令军平之,达赖间道天竺。吐蕃遂定。天竺、俄狄入寇,帝大破之,天下皆慑于帝之天威。
开国十二年,天下饥荒,帝与群臣皆不食肉,以示与民共苦。会诸侯于京,曰七千人大会,帝下罪己诏。储君刘殇公曰:三分天灾,七分人祸。帝甚不悦,始有废储之意。开国十七年,江后令大学士姚文元作《评海瑞罢官》,文革始起。林庄幽公赞太祖曰:大海航行靠舵手——陛下一句顶一万句——令天下无论妇孺老幼皆习帝之语录,舞忠字舞。每日晨起为帝作三忠于、四无限。帝大喜,遂立林公为储君,封摄政王,出入免跪拜。百万红卫于天安门拜谒帝,自林庄幽公、周相国等皆顿首叩拜,山呼万岁。帝下挟书令,罢科举,焚诸子书,禁百家言。以共产之学为国学,以愚黔首。臣民偶语诗书、以古讽今者,或弃市,或收监,或黥为城旦。
开国十八年,太祖武皇帝文革元年,天下大乱,帝名为文革,实为灭功臣之意。开国初,帝以高岗为东北王,饶漱石为华东王,刘伯承为西南王,林彪为中南王,彭德怀为西北王,诸王势力,人莫能及。帝行削藩策,废高、饶,以林、彭、刘等主军机,因功臣俱在,帝甚忌之,故先废高、饶,再废彭公,又以文革为名,阴使江后与林庄幽公结党戮功臣,摄政王刘殇公请乞骸骨,帝不许,后杀刘殇公于开封,密不发丧。十年大乱,计杀功臣名将贺、彭等无算。京师大兴县灭四类分子,满门抄斩数十户。广西民杀逆党,人相食。红色恐怖,人皆股栗。走五七道路,行上山下乡,使万民妻离子散,荒废学业,此皆太祖之大恶也。
文革六年,再会诸侯于庐山,林公令大学士陈伯达谏,欲加帝尊号,帝不许。有废储之意。摄政王林庄幽公不得已谋叛,欲弑帝。帝令周文正公平叛,林公北逃,与王妃叶群、王世子立果均身死漠北。帝诏上海知府王洪文入京,加王爵。欲立为储君,因周相国、朱太师等勋臣力谏乃罢。
文革十一年,相国周文正公薨,天下悲泣,京师万民送葬。十里长街,哭不绝声。四月,京师民变,帝以为世祖所谋,黜世祖。七月,太师朱武胜公薨,未几,地大震于唐山,丧丁二十余万口。
帝自林庄幽公之乱后,龙体日衰。文革十一年,天降星雨于吉林,民以为上将归天,人心惶惶。帝废世祖职,以右丞相华国锋为储君,赐遗诏曰:你办事,我放心。以大司马兵部尚书叶剑英为辅政王,仿刘蜀主托孤之意,委政于叶公。九月九日帝崩于寝宫,寿八十三岁,天下色变,亿万臣民俱悲,如丧考妣。废帝国锋葬太祖于天安门前,号曰:至圣革命真龙伟大导师领袖统帅舵手太祖武皇帝。
太祖文韬武略,历代帝王所不及也。太祖文传于《太祖选集》,诗存于《太祖诗词选》及《太祖语录》中,皆官修定稿。
太祖后三人,杨后开慧,为太祖结发妻,因太祖起事,亡于前朝。贺后子珍,因不敬之罪,贬为庶民。李后云鹤又称江青,因阴结其党,欲废储君华国锋,效武则天事,为大司马辅政王叶公所废,后自缢于室。因共产之道学定曰:帝王不得多嫔妃。故帝晚年所幸之张妃未得以正名加封。太子岸英,公子岸青,岸龙为杨后所生,公主李敏为贺后所生,公主李讷为李后所生。太子岸英阵亡,岸龙早夭,起事之时,又有子女数人,失于乱中,不知所终。诸嫔妃或有生子女者,皆不得知也。公子岸青,公主李讷、李敏均为闲官,皇孙新宇,举进士,入翰林,供职太学。
帝之功过尽在民心,桃李不言,下自成蹊。
古人作事无巨细,寂寞豪华皆有意。书生轻议冢中人,冢中笑尔书生气。
在书写正文之前,笔者将使用推理手法,预测春运的规模、环境和潜在危机,并给出自己的分析结果,在此判断的基础上,以春运的各个阶段为分界线书写手册正文。再次说明笔者并非专业人士,文中的各种结论和推导过程仅供参考。
动作类游戏如何在高延迟下实现同步?不同的客户端网络情况,如何实现延迟补偿?十年前开始关注该问题,转眼十年已过,看到大家还在问这类问题,旧文一篇,略作补充(关于游戏同步相关问题还可以见我写于2005年的另外两篇文章,帧锁定算法 和 网游同步法则):
影子跟随算法由普通DR(dead reckoning)算法发展而来,我将其称为“影子跟随”意再表示算法同步策略的主要思想:
1. 屏幕上现实的实体(entity)只是不停的追逐它的“影子”(shadow)。
2. 服务器向各客户端发送各个影子的状态改变(坐标,方向,速度,时间)。
3. 各个客户端收到以后按照当前重新插值修正影子状态。
4. 影子状态是跳变的,但实体追赶影子是连续的,故整个过程是平滑的。
图1 算法演示
前面的1号终端控制红色飞船P1向左飞,并把自己的状态时时告诉服务器
后面的2号终端上接收到飞船P1的影子S1的状态(向左移动),并让P1的实体追赶S1
网络性能指标一:带宽,限制了实时游戏的人数容量
网络性能指标二:延时,决定了实时游戏的最低反应时间
使用该算法可以容易的开发出一款马里奥赛车,或者Counter Strike,详细说明见后: