`
saiyaren
  • 浏览: 225798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
下面主要分析的是优化阶段和推导阶段的分析,前优化和后优化类似,所以就不具体再分析后优化; 1.   preOptimize分析 1.1.  preOptimize作用 1.将可以进行计算和拼接的简单的一元、二元表达式进行计算和拼接返回成为一个ScalarExpression(但变量和变量之间的是不能在preOptimize中进行合并的,这样的需要进行类型推导后才可以进行优化)          如:      $a=1+2*3+4 优化后$a=11          $a=“123”+3 优化后$a =126     $b=2;$a=$b+3 ; 优化后$a=5;      $ ...
1       摘要 Hiphop是由facebook 公司开发的应用程序,主要是将php代码转换成C++代码进行高度优化,然后由g++生成二进制文件。 官方说明hiphop要比apache+php节约50%的cpu; 经测试,hiphop 要比nginx+fastcgi(加速器)的性能高出60 ...
1.  Hhvm2.1 生成扩展文件方式 Hhvm2.1 的结构化变化比较大,idl的目录放到了$HPHP_HOME/hphp/system/idl下,并且他的格式已经换成了xxx.idl.json 生成*.h和*.cpp的模式为: php$HPHP_HOME/hphp/system/idl/idl.php cpp xxx.idl.json $HPHP_HOME/hphp/runtime/ext/ext_xxx.h$HPHP_HOME/hphp/runtime/ext/ext_xxx.cpp 参数的意思: (1)    模式,cpp ,也有其他的如inc,test 等 (2)  ...
我从去年搞hiphop总结的一些问题,其中有些是过程中的问题,有的是已经解决的问题,没有多做整理和总结,但是希望对大家有帮助:   1.  Hiphop安装 Hiphop 需要在centos 6.2以上支持可以,并且通过yum安装支持包比较好; 然后 cmake时,需要单独创建一个文件夹(如build),不要跟之前的文件混淆,否则编译好的内容会出现错误。   2.  动态加载 AllDynamic 在编译php 时,添加该属性就可以对动态内容进行加载,如require中用变量,默认是关闭的 -v “AllDynamic=true”
有段时间没有接着分析了,现在接着上节的分析继续分析: 3.  analyzeProgram详细分析 经过了生成语法树后,就会执行的是analyzeProgram函数(分析阶段),在analyze_result.cpp中AnalysisResult::analyzeProgram实现的,具体功能实现主流程 ...
我在“hiphop原理分析2”中主要分析了语法结构、语法树的生成、作用域内容以及analyzeProgram的功能分析; 本章中,我主要分析hiphop中的所有statement,expressio的对应关系,还有对于所有语句和表达式的analyzeProgram的详细分析。   主要内容: 1.语句(statement)结构 2.表达式(Expression)结构 3.analyzeProgram详细分析 4.变量表分析   1.  语
  我在”hiphop原理分析1”中主要引入了编译原理和hiphop的简单的词法和语法的工作原理,这章节中我将具体的来讲hiphop的语法结构、树的生成、作用域和其他语法结构的关系、以及静态分析的流程。   主要内容 1.基本语法结构 2.生成树的结构 3.作用域的结构以及关系 4.analyzeprogram分析   1.  基本语法结构 首先来说一下hiphop的整体语法结构如下:
  2.  Hiphop 编译原理分析 接着上节没有分析完的内容继续分析 2.1.  hiphop 编译处理流程   编译流程以 echo “test”;简单分析 (1)加载web server基本信息,通过调用RuntimeOption::Load(empty)方法进行加载 (2)初始化加载扩展基本内容:prepareOptions(po, argc, argv);初始化编译配置;BuiltinSymbols::LoadSuperGlobals()加载php 如_get,_session等函数的返回值类型等;BuiltinSymbols::Load和ar->load ...
Hiphop是Facebook开发一款PHP二进制化的一个工具,最开始是由php转为C++,但是后来发现编译为c++的话,许多的时间会花费在编译代码上面,调试不方便,对于代码来说也不是即见即所得。 所以hiphop经历了这么几个阶段: HPHPC=>H ...
1       摘要 本文档主要分为3部分内容: (1)       解决不同URL访问不同后端的nginx配置方法 (2)       Nginx cache和内存文件系统的配置方法 (3)       Proxy cache的详细配置内容
181 myEclipse插件菜单 add hibernate capabilities 不可用的解决办法” 用myEclipse搭建hibernate框架后,有时搞乱了某些东西后,又想重新加载Hibernate包,但此时 add hibernate capabilities 功能菜单竟然是灰色的,不可用,尤其是初学的朋友往往要重建web项目,一切都要重新来过。 到项目的根目录下找到.profile文件,打开在最下方找到   <natures>  
121.Data truncation: Data too long for column 'variable' at row 1解决方法 在保存blob类型文件的时候,如果报出了上面的错误,则把数据库中的类型改变longblob类型就可以,原来的类型为blob   122.清空文件域的值 <input name="f" type="file" id="f" size="120">
61.Oracle关键字解决办法 当使用pl_sql报出下面错误的时候: ORA-01747: user.table.column, table.column 或列说明无效   如果报这个错误的时候,是因为我们执行的sql语句中有了oracle
1.如果报下列错误: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'hbstpdb.hbstpdb__newskinds' doesn't exist 如去我们的newskinds.hbm.xml文件中找到这个语句 <class name="com.ngworld.bookstore.vo.Newskinds" table="newskinds" catalog=”hbstpdb”> 把上面的这个模式名(catalog=”hbstpdb”)删掉就不会出现上 ...
1.      Linux ssh 多机配置无法连接的问题解决方法 折腾了半天操作步骤一直没有问题,但是就是用ssh连接另一台机器时还是需要输入密码 后来上网查找了一下,该问题是由于$home路径的权限必须是700,而我当前的目录的权限是775,所以就遇到了问题,这问题太囧了,细节决定成败啊。  
Global site tag (gtag.js) - Google Analytics