`
thinkry
  • 浏览: 38338 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
在看haxe的UI库StablexUI时,UIBuilder.hx中出现了#if macro和#if !macro的条件编译。先按经验理解为“当haxe支持宏时”,但看代码逻辑又发现这个解释与代码不符,想了下猜测是“当haxe进行预编译(宏处理)阶段有效”。就像C++先做预编译(宏处理),再执行编译过程那样,#if macro的代码在haxe做预编译(宏处理)时生效,#if !macro的代码则是在预编译(宏处理)过后的阶段才真正有效。   haxe的宏功能非常强大,能在编译期间执行haxe代码,同时在理解时也增加了复杂度。
在gamehaxe.com上huge介绍了hxcpp模块的内置调试功能,我有些好奇它是怎么实现的,就开始翻看相应的代码。   首先,从haxe源码看,haxe是用OCaml编译出来的(OCaml不太熟悉),而haxe的作用是先把hx源码转为对应的as3/cpp/java代码,再编译成目标程序。从haxe源码中的gencpp.ml里能看到许多HXCPP_DEBUGGER和HX_STACK_XXXX的宏,说明haxe在hx->cpp过程中,插入了大量的宏来处理当前的文件名、行号、变量等信息。   再来看hxcpp的代码,在include/hx/Debug.h中能看到HX_STACK ...
在使用IDEA 12编译时,出现haxe: process throw exception: Cannot run program "C:/Motion-Twin/Haxe/haxelib.exe" (in directory "E:\svn\haxe_project\samples\PiratePig\out\production\piratepig\debug"): CreateProcess error=267   这个问题解决了,创建工程时,默认的源码目录是src,但这个例子源码放在Source下,在工程设置里,把Source加入到源码路径就 ...
Web后台开发中遇到的问题五花八门,分析问题涉及到的方方面面挺多的,不容易下手。本文分享工作中遇到的一些解决问题的方法仅供参考。如果您有好方法和案例,欢迎分享。1一些系统知识 ulimit -a里的各种限制,特别是open files和core file size 共享内存大小受/proc/sys/kernel/shmmax控制 32位OS下默认写文件超过2G会coredump,可通过定义宏来解决 32位OS下,受低端内存大小(800M,所有进程共享)的影响,单机socket大概超过9~10万会产生OOM(Out of Memory),系统会杀掉些进程,而且还没有coredump。可查 ...
现在设计高性能Web网站时,一般都把动态和静态分开处理。静态资源(html/image/js/css/swf)一般使用nginx/lighttpd这类Web服务器,把静态资源缓存到内存或用sendfile,CPU和磁盘IO一般不是瓶颈,性能很高,直接用就行,本文不讨论。 至于动态部分,我们一般使用Apache,用C++编写CGI/FastCGI。FastCGI因为比CGI少了fork和初始化,并发性能和CPU消耗都比CGI要好很多。本质上,FastCGI是一种同步多进程的Server(也有用多线程模式,但对编码要求更高些)。 这种同步模式的并发性能,受限于FastCGI进程数和请求处理时长: ...
Global site tag (gtag.js) - Google Analytics