数学 mathematics, maths(BrE), math(AmE) 公理 axiom 定理 theorem 计算 calculation 运算 operation 证明 prove 假设 hypothesis, hypotheses(pl.) 命题 proposition 算术 arithmetic 加 plus(prep.), add(v.), addition(n.) 被加数 augend, summand 加数 addend 和 sum 减 minus(prep.), subtract(v.), subtraction(n.) 被减数 minuend 减数 subtrahend 差 remainder 乘 times(prep.), multiply(v.), multiplication(n.) 被乘数 multiplicand, faciend 乘数 multiplicator 积 product 除 divided [...]
20世纪60年代出现了非标准分析,它是利用数理逻辑方法
来探讨和刻画微积分的理论基础,引起了人们的重视,为数学开辟了新的研究领域。
通 常的数学分析,又称为标准分析,其主要部分是微积分学,它是以现实世界中的连续变量及其相互关系为研究对象的数学分支。它的基本概念是在实数系范围内取值 的变量和函数的概念,它的研究方法是极限理论。所以,标准分析是指十九世纪柯西、魏尔斯特拉斯等人用极限方法所建立的微积分理论,他们在数学的证明中用极 限方法代替了无限小量方法,对微积分理论作了较严谨的逻辑论证,他们的理论比十七、十八世纪的微积分理论前进了一大步。这表现在它创立了一系列判别法则, 发现了关于函数的连续性、可微性的一些重要结果。
围绕微积分的一场争论曾在18世纪初激烈进行。话可从牛顿时代说起。试看求y=x2的导数。先取无穷小量⊿x,则⊿y=(x+⊿x)2-x2=2x⊿x+⊿x2,即⊿y/⊿x=2x+⊿x。又因为⊿x是无穷小量可忽略不计,即得y/=2x。无穷小量⊿x在这里既不是0(可用⊿x 去除),却又等于0(最后忽略不计,⊿x就消失了)。这套办法似乎有点像变魔术。马克思称略去⊿x是“暴力镇压”,大主教贝克莱则呼之为“逝去量的鬼魂”或“已死量的幽灵”(ghosts of departed quantities)。这种把无穷小神秘化的做法确实不太好,“招之即来,呼之即去”,完全是神差鬼使的一套。然而不管如何攻击,它的运算结果却总是对的。大数学家欧拉曾用这种不严格的微积分做出了辉煌的成果。渐渐地人们也不再有异议了。
到了19世纪,法国数学家柯西认识到,结论正确并不意味着体系完整,于是着手使“无穷小分析”严格化。这就是著名ε—N和ε—δ说法,这个说法到19世纪70年代才由魏尔斯特拉斯完成。这种寓动于静,表示极限过程的描述,把神秘化的外衣去掉了:所谓无穷小,不过是极限为0的变量而已。它不是“一个数”,而是一个变化过程,即不断向常数0以 误差可任意小进行逼近的一个变量。它的表示完全是算术化了的,ε,δ等的关系,明确无误,一目了然。然而,“无穷小”不是数,不能直接除,也不能忽略不 计,生动活泼的运算淹没在形式的海洋里,人们抱怨微积分越来越难学。工程学家不理会对无穷小的批评,仍然沿用牛顿—欧拉时代的方便做法,把“无穷小”拿在 手里不肯丢掉。不过,“无穷小”在数坛上终究呆不住,20世纪以来,几乎销声匿迹,偶尔提到它,也不过是习惯性的名词介绍而已。
1960年秋事情有了转机。数理逻辑学家阿伯拉罕·罗宾逊(Abraham Robinson,1918~1974,生于德国的犹太人,1962年去美国)在普林斯顿大学的一次报告中指出:现代数理逻辑的概念和方法能为“无穷小”和“无穷大”作为“数”进入微积分提供合适的框架。1961年,罗宾逊在荷兰阿姆斯特丹皇家科学院学报上发表文章,题为《非标准分析》,表明这一新数学分支已经呱呱坠地了。
在标准分析里,研究的有理数和无理数的集合称为实数集合。实数集合与直线上的点一一对应,实数的集合是连续的。在非标准分析里,罗宾逊的基本想法是:无穷 小既然不是一个“数”,即在实数集合中没有它的位置,那么我们是否能把实数集合扩大,使之成为新的超实数集合,而微积分在超实数集合中实施时,能够保持当 年牛顿—欧拉时代的直观和简便易行?罗宾逊用数理逻辑中模型论的方法做到了这一点。在超实数集合中,每一通常的实数是标准数,它的周围聚集着许多“无穷小 ”(非标准实数),就像电子围绕原子核一样。在超实数集合中没有阿基米德性质,即任取整数α和β,不一定都能找到自然数n,使nα>β,因为无穷小是大于0的非标准实数,它的任意整倍数仍是无穷小,不可能大于正标准数β。
从 “宏观”上看,超实数集合的数轴与实数集合的数轴一样。但是从“微观”上看并不相同,在超实数轴上的每一点内,有许多非标准实数。这些非标准实数彼此相差 无限小量,形成了一个有内部结构的点,称为“单子”,每个“单子”只有一个标准实数。从标准实数来看,点与点是连续的,从超实数轴来看,点与点是连续与间 断的对立统一。
从它的物理意义来说,如一条光线,从“宏观”看来,它是连续的,从“微观”看来不仅不连续,而且不均匀,量子理论证明了光具有波动和粒子二像性,正表明了光是连续与不连续的对立统一。
非 标准分析为我们打开了一个新的世界——“点”的世界。任何一个“点”,都是一个“世界”;任何一个世界,都是一个“点”,正如天外有天一样,点内又有点。 在太阳系中,地球是一个“点”,它是有结构的,可分的,同样分子可作为一个“点”,它有结构,是可分的。从数学上说,由更小的层次看来,在任何一个“点” 中,都可以建立坐标系,因为它是一个“世界”,由更大的层次看来,在任何一个“世界”都可以仅仅是坐标系的一点。非标准分析接受了“点”的可分性的辩证 法。
这 套数理逻辑的方法是相当烦琐的,要弄懂它比搞清微积分概念困难得多。但是无穷小毕竟堂而皇之地重返数坛,成为逻辑上站得住脚的数学中的一员,这是非标准分 析给我们带来的“革命”信息,是令人高兴的事情。从哲学上看,也自有它的意义。否定之否定,微积分学的基础又得到了新发展,真是“柳暗花明又一村!”
1965年4月,罗宾逊写了《非标准分析》一书,广为流传。许多数学家对此表示支持,也有许多人表示怀疑。1973年,罗宾逊在普林斯顿高等研究所遇到著名的哥德尔——本世纪最著名数理学家。哥德尔作了这样的评价:
“ 非标准分析不但常常能够简化初等定理的证明,而且对简化艰深结论的证明也同样有效。例如,对于紧算子具有“不变子空间”的定理就能大大简化。……我们有理 由相信,不论从哪方面看,非标准分析将会成为未来的数学分析。……在未来世纪中,将要思量数学史中的一件大事,就是为什么在发明微积分学后300年,第一个严格的无限小理论才发展起来。”
哥德尔的评价使非标准分析更加受人重视。非标准的群论、非标准的泛函分析、非标准的拓扑,相继问世。基斯勒(Keisler) 写了一本非标准分析的微积分教科书,经过试教,据说接受情况良好,准备扩大试验。但是,对它抱怀疑态度的人最近越来越多。理由是“凡用非标准分析能得到的 结果,用原来的标准方法都能得到,既然没有新东西,本身又那样难懂,何必去学它呢?”更有人认为非标准分析不过是数理逻辑学家在“想入非非”、“见异思迁 ”,实在是多此一举。至于非标准分析是否能成为“未来世纪的数学分析”,恐怕要接受实践的检验,经受历史的考验。人们接受一种新事物需要一个过程,尤其对 于一种新说法、新装饰、更需要时间。要人们普遍使用非标准分析,简直就像让人去说另一门外语一样难。哥德尔的预言是否正确,且看将来吧!不过,罗宾逊使无 穷小再生的功绩将不会抹杀,在数学史上一定会有一席地位的。
一份中国学科分类国家标准,看看,就一个数学中的一个分支一个人一辈子都研究不完。其中也说明了,应用数学归为每个具体应用学科里面。除了专门数学专业的,其他专业的也只是学了其中在本学科需要的一小部分而已。
110 数学 a.. 110.11 数学史 b.. 110.14 数理逻辑与数学基础 a.. 110.1410 演绎逻辑学 亦称符号逻辑学 b.. 110.1420 证明论 亦称元数学 c.. 110.1430 递归论 d.. 110.1440 模型论 e.. 110.1450 公理集合论 f.. 110.1460 数学基础 g.. 110.1499 数理逻辑与数学基础其他学科 c.. 110.17 数论 a.. 110.1710 初等数论 b.. 110.1720 解析数论 c.. 110.1730 代数数论 d.. 110.1740 超越数论 e.. 110.1750 丢番图逼近 f.. 110.1760 数的几何 g.. 110.1770 [...]
Table of Contents
1. awk简介
2. awk命令格式和选项
2.1. awk的语法有两种形式
2.2. 命令选项
3. 模式和操作
3.1. 模式
3.2. 操作
4. awk的环境变量
5. awk运算符
6. 记录和域
6.1. 记录
6.2. 域
6.3. 域分隔符
7. gawk专用正则表达式元字符
8. POSIX字符集
9. 匹配操作符(~)
10. 比较表达式
11. 范围模板
12. 一个验证passwd文件有效性的例子
13. 几个实例
14. awk编程
14.1. 变量
14.2. BEGIN模块
14.3. END模块
14.4. 重定向和管道
14.5. 条件语句
14.6. 循环
14.7. 数组
14.8. awk的内建函数
15. How-to
1. awk简介
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出 (屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在 linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。
2. awk命令格式和选项
2.1. awk的语法有两种形式
awk [options] ’script’ var=value file(s)
awk [options] -f scriptfile var=value file(s)
2.2. 命令选项
-F fs or –field-separator fs
指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
-v var=value [...]
awk提供了许多强大的字符串函数,见下表:awk内置字符串函数
gsub(r,s)
在整个$0中用s替代r
gsub(r,s,t)
在整个t中用s替代r
index(s,t)
返回s中字符串t的第一位置
length(s)
返回s长度
match(s,r)
测试s是否包含匹配r的字符串
split(s,a,fs)
在fs上将s分成序列a
sprint(fmt,exp)
返回经fmt格式化后的exp
sub(r,s)
用$0中最左边最长的子串代替s
substr(s,p)
返回字符串s中从p开始的后缀部分
substr(s,p,n)
返回字符串s中从p开始长度为n的后缀部分
详细说明一下各个函数的使用方法。gsub函数有点类似于sed查找和替换。它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行。第一个函数作用于记录$0,第二个gsub函数允许指定目标,然而,如果未指定目标,缺省为$0。index(s,t)函数返回目标字符串s中查询字符串t的首位置。length函数返回字符串s字符长度。match函数测试字符串s是否包含一个正则表达式r定义的匹配。split使用域分隔符fs将字符串s划分为指定序列a。sprint函数类似于printf函数(以后涉及),返回基本输出格式fmt的结果字符串exp。sub(r,s)函数将用s替代$0中最左边最长的子串,该子串被(r)匹配。sub(s,p)返回字符串s在位置p后的后缀。substr(s,p,n)同上,并指定子串长度为n。现在看一看awk中这些字符串函数的功能。
1.gsub要在整个记录中替换一个字符串为另一个,使用正则表达式格式,/目标模式/,替换模式/。例如改变学生序号4842到4899:
$ awk ‘gsub(’4842/, 4899) {print $0}’ grade.txtJ.Troll 07/99 4899 Brown-3 12 26 26
2.index查询字符串s中t出现的第一位置。必须用双引号将字符串括起来。例如返回目标字符串Bunny中ny出现的第一位置,即字符个数。
$ awk ‘BEGIN {print index(”Bunny”, “ny”)} grade.txt4
3.length返回所需字符串长度,例如检验字符串J.Troll返回名字及其长度,即人名构成的字符个数。
$ awk ‘$1==”J.Troll” {print length($1) ” “$1}’ grade.txt7 J.Troll
还有一种方法,这里字符串加双引号。
$ awk ‘BEGIN {print length(”A FEW GOOD MEN”)}’14
4.matchmatch测试目标字符串是否包含查找字符的一部分。可以对查找部分使用正则表达式,返回值为成功出现的字符排列数。如果未找到,返回0,第一个例子在ANCD中查找d。因其不存在,所以返回0。第二个例子在ANCD中查找D。因其存在,所以返回ANCD中D出现的首位置字符数。第三个例子在学生J.Lulu中查找u。
$ awk ‘{BEGIN {print match(”ANCD”, /d/)}’0$ awk ‘{BEGIN {print match(”ANCD”, /C/)}’3$ awk ‘$1==”J.Lulu” {print match($1, “u”)} grade.txt4
5.split使用split返回字符串数组元素个数。工作方式如下:如果有一字符串,包含一指定分隔符-,例如AD2-KP9-JU2-LP-1,将之划分成一个数组。使用split,指定分隔符及数组名。此例中,命令格式为(”AD2-KP9-JU2-LP-1″,parts_array,”-”),split然后返回数组下标数,这里结果为4。还有一个例子使用不同的分隔符。
$ awk [...]
当你在编写一个程序时,有时不得不把字符写进文件里去。
正在装载数据……
如下面的:
import java.io.*;
public class Encode1 {
public static void main(String args[])
throws IOException {
Writer writer = new FileWriter(”out”);
writer.write(”testing”);
writer.close();
}
}
当你在solaris 系列的操作系统或windows 平台运行时,文本文件out 只有7字节。这就是你预期的结果。
但这里还是有一个重要的问题。Java 字符是16位,这就是说每个字符是2 个字节长。程序Encode1把7个字符写进了文件out里了。并且结果是一个7字节长的文件。你可能要问:其它字符到那儿去了。难道这里把14个字节写进了文件中了吗。
这个问题归结为“字符编码”了。这个问题是怎样把在java中的16位字符映射成8位字节保存到文件中去。事实上,这里有一非常好的机制,而不是简单的放大、缩小8位或16位,因为在全世界几百种字符编码在使用。这就是说:这种特殊的8位字符序列需要因不同平台、及场所而重新组合成java字符串。
Java系统是通过你因不同的需要而选择特殊编码配置来解决这个问题的。同时它也提供一默认的字符编码基于你的平台和环境。像上面的实例,java系统支持默认的字符编码进行i/o操作。另外,你也可以指定其它的编码(字符集)。这些字符编码是一字符串来描述,比如:”utf-8”。也可以是java.nio.charset.Charset 类的一个实例。Charset 是一抽象类,所以事实上这个实例是Charset 类的子类。
在Encode1例子中,解决编码问题的一种方法是把字符分解成两个字节写进文件中去。竟管这个文件可能没有字节散布在这里面。另外一种办法是把java字符中的高位抛弃。这种办法在上面的例子可以用,但你尝试写一希腊、日语字符串就不会成功了。
在这个例子中实际是用第二种方法来处理的(它的高位字节抛弃)。如果你在Encode1例子中把输出行:writer.write(”testing”); 改成:writer.write(”testing\u1234″); 这输出行的总长将是8字节而不是7字节了。竟管如此,这统一编码字符\u1234 还是不能以一个字节显示出来。
在前面讨论中的“抛弃“有两种意思。如果java字符的高位是0,就像字符是以7位ASCII表示,那么“抛弃”的意思是舍去高位字节。另外一种意思是在某种的环境下你不可能用映射使用一特殊的字符。在这种可能情况下字符(2个字节)可能被一默认的置换字节所取代。就像上面例子中的/u1234 由0×3f 取代了。
下面让我们来看看怎样使用字符集、在字符与字节之间映射。一个基本的问题是:那些字符集是可用呢?下面这个程序演示了一个列表:
import java.nio.charset.*;
import java.util.*;
public class Encode2 {
public static void main(String args[]) {
Map availcs = Charset.availableCharsets();
Set keys = availcs.keySet();
for (Iterator iter =
keys.iterator();iter.hasNext();) [...]
大家比较熟悉使用各种搜索引擎,但是,还有一种更主动和专门的搜索技术:网络爬虫。
1 爬虫技术研究综述
引言
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,如:
(1) 不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。
(2) 通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
(3) 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频/视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。
(4) 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
为 了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关 的链接,获取所需要的信息。与通用爬虫(generalpurpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
1 聚焦爬虫工作原理及关键技术概述
网 络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的 URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件,如图1(a)流程图所示。聚焦爬虫的工作流程较为复 杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步 要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,如图1(b)所示。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过 滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:
(1) 对抓取目标的描述或定义;
(2) 对网页或数据的分析与过滤;
(3) 对URL的搜索策略。
抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。
2 抓取目标描述
现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。
基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为:
(1) 预先给定的初始抓取种子样本;
(2) 预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;
(3) 通过用户行为确定的抓取目标样例,分为:
a) 用户浏览过程中显示标注的抓取样本;
b) 通过用户日志挖掘得到访问模式及相关样本。
其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。
现有的聚焦爬虫对抓取目标的描述或定义可以分为基于目标网页特征,基于目标数据模式和基于领域概念三种。
基 于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。具体的方法根据种子样本的获取方式可以分为:(1)预先给定的初始抓取种子样本;(2) 预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;(3)通过用户行为确定的抓取目标样例。其中,网页特征可以是网页的内容 特征,也可以是网页的链接结构特征,等等。
作者: [...]
标题:对称块加密算法加密模式详解作者:DragonKing Email: wzhah@263.net原发网站:中国openssl专业论坛 http://openssl.126.com版权声明:未经作者允许,不能转载和在出版物中使用本文
在openssl或其他密码相关的资料中,我们经常看到对称加密算法有ECB、CBC之类加密模式的简称,到底这些加密模式是什么呢?它们之间有什么不同呢,今天就是为大家解开这个迷。在现有的对称加密算法中,主要有4种加密处理模式,这4种加密处理模式一般是针对块加密算法而言的,如DES算法。这4种加密模式罗列如下:
模式中文描述 英文名称(Openssl缩写) 电子密码本模式 Electronic Code Book(ECB) 加密块链模式 Cipher Block Chaining(CBC) 加密反馈模式 Cipher Feedback Mode(CFB) 输出反馈模式 Output Feedback Mode(OFB) 下面我们分别介绍这4种加密模式。【电子密码本模式】这
种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。比如DES算法,一个64
位的密钥,如果采用该模式加密,就是将要加密的数据分成每组64位的数据,如果最后一组不够64位,那么就补齐为64位,然后每组数据都采用DES算法的
64位密钥进行加密。下图:_______________________My name |is Drago|nKing———————–上图“My name is DragonKing”这句话每8个字符(64位)作为一块,然后使用一个相同的64位的密钥对每个块进行加密,最后一块不足64位,就补齐后再进行加密。可以看到,因为ECB方式每64位使用的密钥都是相同的,所以非常容易获得密文进行密码破解,此外,因为每64位是相互独立的,有时候甚至不用破解密码,只要简单的将其中一块替换就可以达到黑客目的。【加密块链模式】该模式如下图所示: P0 P1 C0 C1 | | | | | | |—-| |—>…IV—>XOR |—>XOR |—>… Key Dec | [...]
网上找到的一篇文章讲的很清楚,就直接Copy过来了,在此感谢原作者。
xdebug是一个开源的php调试器,以php模块的形式加载并被使用。
windows 平台下:
一、安装xdebug模块
1、去www.xdebug.org下载相应版本php的模块文件,保存下载后的文件到php的ext目录,可以自己修改文件的名称,现在最新的版本是 2.0.1。
2、修改php.ini,增加如下信息
[Xdebug]
zend_extension_ts=”d:/php/ext/xdebug-xxx.dll”
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir=”d:\Temp\xdebug”
xdebug.profiler_enable=on
xdebug.profiler_output_dir=”d:\Temp\xdebug”
参数解释:
zend_extension_ts=”d:/php/ext/xdebug-xxx.dll”
加载xdebug模块。这里不能用extension=xdebug-xxx.dll的方式加载,必须要以zend的方式加载,否则安装上后,
phpinfo打印出来的里的xdebug段的会有XDEBUG NOT LOADED AS ZEND EXTENSION的警告信息。
xdebug.auto_trace=on
自动打开“监测函数调用过程”的功模。该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出。此配置项的默认值为off。
xdebug.collect_params=on
打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。
xdebug.collect_return=on
打开收集“函数返回值”的功能。将函数的返回值列入函数过程调用的监测信息中。此配置项的默认值为off。
xdebug.trace_output_dir=”d:\Temp\xdebug”
设定函数调用监测信息的输出文件的路径。
xdebug.profiler_enable=on
打开效能监测器。
xdebug.profiler_output_dir=”d:\Temp\xdebug”
设定效能监测信息输出文件的路径。
另外,xdebug 不能和 Zend Optimizer 以及其他 Zend 扩展 (DBG, APC, APD etc) 同时工作,目前这个问题正在修复中。
还有一些更为具体的参数设定,详见:http://www.xdebug.org/docs-settings.php
3、重启apache
这样,在本地运行php的时候,会在所设定的目录里产生一些调试信息的文件:
* 函数调用过程监测信息文件的文件名格式:trace.××××××.xt。这个文件可以直接查看,里面包含了函数运行的时间,函数调用的参数值,返回值,所在的文件和位置等信息。内容格式还是相对直观的。
* 效能监测文件的文件名格式:cachegrind.out.××××××××。
这个文件也可以直接查看,不过信息格式不易被人类所理解,
所以我们需要接下来的一个软件。
二、安装wincachegrind
由于效能监测文件:cachegrind.out.××××××××文件的内容不易被人类所理解,所以我们需要一个工具来读取它。windows下就有一款这样的软件:wincachegrind。
1、到http://sourceforge.net/projects/wincachegrind/下载安装wincachegrind
2、安装运行后,点击Tools->options,设定你的working folder(php.ini里xdebug.profiler_output_dir的值)
这样就可以比较直观的查看效能监测文件的信息了。
控制输出CacheGrind文件名的控制
http://xdebug.org/docs/all_settings#trace_output_name
ubuntu 下安装
一、安装xdebug
1. 先到xdebug.org下载最新的源码包。
2. 编译安装
tar -zxvf xdebug-xxx.tgz
cd xdebug-xxx
phpize
./configure –enable-xdebug
make
sudo make install
3. 修改配置文件php.ini,添加下面一行
zend_extension_ts=”/wherever/you/put/it/xdebug.so”
这里的/wherever/you/put/it/是 xdebug.so 所在的目录
第一行将装入 Xdebug 扩展;第二行将启用 Xdebug 的分析器功能,而第三行将启用扩展的调试功能。
一些推荐的配置
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.show_exception_trace = On
xdebug.show_local_vars = 1
xdebug.max_nesting_level = 50
xdebug.var_display_max_depth = 6
xdebug.dump_once = On
xdebug.dump_globals = [...]
1.abandon vt 离弃,丢弃,放弃;
The pretty woman abandoned her husband and went away with all their money;
abandon oneself to 沉溺于;
with bandon 1.放任的,放纵的;2.纵情的
abandon,desert,quit
abandon指因外界压力或影响彻底舍弃所感兴趣的事物或人;desert指违背誓言或法定义务,含贬义;quit指突然放弃某份工作、习惯和作法,常指“停止”。
2.ability n.[能力,本领],[才能,才智]
e.g. Now,a momentous queston scientists face is how to use man’s growing ability to genetically alter DNA.现在,科学家面临的一个重要问题是如何利用人类不断增长的能力来从基因方面改组脱氧核糖核酸。
to the best of one’s ability,尽自己最大的努力
ability,capability,capacity
ability为普通用词,尤指做事的智力或体力,后面通常接不定式;capability也指智力和体力方面的“能力”,但既可用于人,也可用于物,且后面常接of或for;capacity主要指收容和生产的能力,也可指人内在的潜力,后面可接不定式of或for.
He soon received promotion, for his superiors realized that he was a man of considerable [...]