关闭

java日志系统问题总结

摘要本文主要讲述slf4j, jcl, logback, log4j2, log4j冲突问题。 适用场景为同时使用thrift, elasticsearch-client, 老内部库等第三方库造成日志管理难度问题。日志系统介绍首先总结java提供的日志系统,它包括: - jul 全称java-utils-logging, jdk自带的日志系统) - jcl 全称 apache...
阅读(243) 评论(0)

opensuse 42.1 安装kde4

opensuse 42.1 安装kde4opensuse 42.1默认安装的是kf5, 但是kf5不稳定, 经常奔溃. 这里提供一个教程, 用于重新安装kde4.安装和卸载必要程序使用yast2, 点击”软件管理”.1.搜索kdebase4设置kdebase4-session, kdebase4-workspace为安装, 弹出框一律选择第一个.2.搜索plasma 设置plasma-nm5,...
阅读(843) 评论(0)

mysql导入导出csv文件

mysql导出csv文件语法块`select block` into outfile `/path/of/file` fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';例子select * from test_info into outfile '/tmp/tes...
阅读(390) 评论(0)

php面试中的经典问题

问题一问题描述考虑下面代码:$str1 = 'yabadabadoo'; $str2 = 'yaba'; if (strpos($str1,$str2)) { echo "\"" . $str1 . "\" contains \"" . $str2 . "\""; } else { echo "\"" . $str1 . "\" does not contain \"" . $str...
阅读(6974) 评论(0)

redis总结

redis的缓存处理当将redis作为缓存服务器时, 需要处理过期缓存问题. LRU是redis唯一支持的缓存处理方式. 对于缓存方面的设置包括两个参数, 一个是最大缓存数量, 另一个是缓存策略.最大缓存数量参数名为, “maxmemory”, 在配置文件”redis.conf”中设置. 当这个参数设置为0时, 表示内存无限制. 但是对于32位操作系统, 最大内存使用为3GB, 当超过这个数...
阅读(4834) 评论(0)

90-新垃圾回收机制说明

90-新垃圾回收机制说明在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空间可以被释放,否则就不释放,这是一种非常简单的GC实现。然而在这种简单的GC实现方案中,出现了意想不到的变量内存泄漏情况(Bug:http://bugs....
阅读(7677) 评论(0)

89-变量的引用与计数规则

89-变量的引用与计数规则变量的内部引用和计数在引擎内部,一个PHP的变量是保存在“zval”结构中,此结构包含了变量的类型和值信息,这个在之前的文章 变量的内部存储:值和类型 中已经介绍了,此结构还有另外两个字段信息,一个是”is_ref”(此字段在5.3.2版本中是is_ref__gc),此字段是一个布尔值,用来标识变量是否是一个引用,通过这个字段,PHP引擎能够区分一般的变量和引用变量。PHP...
阅读(587) 评论(0)

88-zend_execute的具体执行过程

88-zend_execute的具体执行过程解释器引擎最终执行op的函数是zend_execute,实际上zend_execute是一个函数指针,在引擎初始化的时候zend_execute默认指向了execute,这个execute定义在{PHPSRC}/Zend/zend_vm_execute.h:ZEND_API void execute(zend_op_array *op_array TSRM...
阅读(7167) 评论(0)

87-代码的加密与解密

87-代码的加密与解密PHP语言作为脚本语言的一种,由于不需要进行编译,所以通常PHP程序的分发都是直接发布源代码。 对于一些开源软件来说,这并没有什么问题,因为它本来就希望有更多的人阅读代码,希望有更多的人参与进来, 而对于商业代码来说,这却是一个不太好的消息,不管是从商业秘密,还是从对公司产权的保护来说却是一个问题, 基于此,从而引出了对PHP代码的加密和解密的议题。 例如国内的Discuz论坛...
阅读(1026) 评论(0)

86-中间代码opcode的执行

86-中间代码opcode的执行假如我们现在使用的是CLI模式,直接在SAPI/cli/php_cli.c文件中找到main 函数, 默认情况下PHP的CLI模式的行为模式为PHP_MODE_STANDARD。 此行为模式中PHP内核会调用php_execute_script(&file_handle TSRMLS_CC);来执行PHP文件。 顺着这条执行的线路,可以看到一个PHP文件在经过词法分析...
阅读(7100) 评论(0)

85-虚拟机的语法分析

85-虚拟机的语法分析Bison是一种通用目的的分析器生成器。它将LALR(1)上下文无关文法的描述转化成分析该文法的C程序。 使用它可以生成解释器,编译器,协议实现等多种程序。 Bison向上兼容Yacc,所有书写正确的Yacc语法都应该可以不加修改地在Bison下工作。 它不但与Yacc兼容还具有许多Yacc不具备的特性。Bison分析器文件是定义了名为yyparse并且实现了某个语法的函数的C...
阅读(6726) 评论(0)

84-虚拟机的词法解析

84-虚拟机的词法解析语言从广义上来讲是人们进行沟通交流的各种表达符号。每种语言都有专属于自己的符号,表达方式和规则。 就编程语言来说,它也是由特定的符号,特定的表达方式和规则组成。 语言的作用是沟通,不管是自然语言,还是编程语言,它们的区别在于自然语言是人与人之间沟通的工具, 而编程语言是人与机器之间的沟通渠道。相对于自然语言,编程语言的历史还非常短, 虽然编程语言是站在历史巨人的基础上创建的,但...
阅读(4008) 评论(0)

83-Zend虚拟机

83-Zend虚拟机通过前面的学习,我们了解到一个PHP文件在服务器端的执行过程包括以下两个大的过程: 递给php程序需要执行的文件, php程序完成基本的准备工作后启动PHP及Zend 引擎, 加载注册的扩展模块。 初始化完成后读取脚本文件,Zend引擎对脚本文件进行词法分析,语法分析。然后编译成opcode执行。 如过安装了apc之类的opcode缓存, 编译环节可能会被跳过而直接从缓存中读取o...
阅读(519) 评论(0)

82-资源resource类型

82-资源resource类型讲述之前,先描述下{资源}类型在内核中的结构://每一个资源都是通过它来实现的。 typedef struct _zend_rsrc_list_entry { void *ptr; int type; int refcount; }zend_rsrc_list_entry; 在真实世界中,我们经常需要操作一些不好用标量值表现的数据,比如某个文件的...
阅读(7284) 评论(0)

81-继承与实现接口

81-继承与实现接口在定义一个类时往往会使其继承某个父类或者实现某个接口,在扩展中实现这个功能非常方便。下面我先给出PHP语言中的代码。<?php interface i_myinterface { public function hello(); }class parent_class implements i_myinterface { public function hello...
阅读(469) 评论(0)
128条 共9页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:169325次
    • 积分:2876
    • 等级:
    • 排名:第12833名
    • 原创:124篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章分类