`
wbj0110
  • 浏览: 1624170 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
诸多大互联网公司的面试都会有这么个问题,有个4G的文件,如何用只有1G内存的机器去计算文件中出现次数做多的数字(假设1行是1个数组,例如QQ号码)。如果这个文件只有4B或者几十兆,那么最简单的办法就是直接读取这个文件后进行分析统计。但是这个是4G的文件,当然也可能是几十G甚至几百G的文件,这就不是直接读取能解决了的。 同样对于如此大的文件,单纯用PHP做是肯定行不通的,我的思路是不管多大文件,首先要切割为多个应用可以承受的小文件,然后批量或者依次分析统计小文件后再把总的结果汇总后统计出符合要求的最终结果。类似于比较流行的MapReduce模型,其核心思想就是“Map(映射)”和“Reduc ...
摘要: 本文主要介绍了利用webservice,session,cookie技术,来进行通用的单点登录系统的分析与设计。具体实现语言为PHP。单点 登录,英文名为Single Sign On,简称为 SSO,是目前企业,网络业务的用户综合处理的重要组成部分。而SSO ...
装饰模式   所谓装饰模式就是让程序一层一层的包下来, 像是大口袋套小口袋。   例:     [php] view plaincopy
  [php] view plaincopy //抽象类的定义:
1. get_class — 返回对象的类名 string get_class ([ object $obj ] ) 返回对象实例 obj 所属类的名字。如果 obj 不是一个对象则返回 FALSE。 Note: 在 PHP 扩展库中定义的类返回其原始定义的名字。在 PHP 4 中 get_class() 返回用户定义的类名的小写形式,但是在 PHP 5 中将返回类名定义时的名字,如同扩展库中的类名一样     [php] 
PHP处理对象部分的内核完全重新开发过,提供更多功能的同时也提高了性能。在以前版本的php中,处理对象和处理基本类型(数字,字符串)的方式是一样的。这种方式的缺陷是:当将对象赋值给一个变量时,或者通过参数传递对象时,对象将被完全拷贝一份。在新的版本里,上述操作将传递引用(可以把引用理解成对象的标识符),而非值。 很多PHP程序员可能甚至没有察觉到老的对象处理方式。事实上,大多数的php应用都可以很好地运行。或者仅仅需要很少的改动。 私有和受保护成员 PHP5引入了私有和受保护成员变量的概念。
1)所有数据都应该隐藏在所在的类的内部。     (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。     (3)尽量减少类的协议中的消息。     (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝 ...
  说起排序,大多数人在实际项目中很少自己去写一个排序,一般来说,qsort一行话就可以了。我也很少在实际项目中用到过基数排序,最近,写了一篇博客文章叫做: 字符串之全文索引 ,这篇文章的下一篇文章 要用到一个倍增算法。这个倍增算法,就可以非常巧妙的运用基数排序。作为那篇文章的一个铺垫,我专门写了一篇基数排序的文章。这篇文章里面的基数排序肯定是一个变形。 大多数网上 或者 书上的基数排序都是从下面的例子开始的: 排序下面的数列: 73  22  93  43  55  14  28  65  39  81 然后对这些数字,用个位数进行排序: 0
1. 排在第一位的毫无疑问是《黑客帝国》三部曲。关键词:矩阵。 2. 《盗梦空间 Inception》。关键词:虚拟化。 3. 《云图 Cloud Atlas》。关键词:并行。
  十天内掌握线性代数:惊人的超速学习实验 斯考特·杨在12个月内自学完成4年麻省理工学院计算机科学的33门课程,并通过了MIT的实际测试。平均算来,杨修完每门课程大概只需要一个半星期。诀窍在于,他有一套加速学习 ...
  Yii 之初体验    安装Yii 创建应用骨架 应用的工作流程 在这一部分里,我们将讲解怎样建立一个程序的骨架作为着手点。为简单起见,我们假设Web服务器根目录是/wwwroot ,相应的URL是 http://www.example.com/。
非常强烈的推荐下BTrace这个工具,用了后不得不说太强大了,BTrace简单来说,就是能在不改动当前程序的情况下,运行时的去监控Java程序的执行状况,例如可以做到内存状况的监控、方法调用的监控等等,官方网站上有非常多详细的例子,我不说太多,只在下面举一个简单的例子来说明它的作用,BTrace的User Guide请见:http://kenai.com/projects/btrace/pages/UserGuide。对于运行中的Java程序,尤其是出了问题的程序,会需要跟踪其执行状况,例如传入的参数是什么、执行了多少时间,返回的对象是什么,抛出了什么异常,传统的做法只能是把程序改一遍,加上 ...
什么是BTrace?BTrace是SUN Kenai云计算开发平台下的一个开源项目。旨在为java提供安全可靠的动态跟踪分析工具。 Btrace基于动态字节码修改技术(Hotswap)来实现运行时java程序的跟踪和替换。(还记得javarebel不?)Btrace的脚本是用纯java编写的,基于一套官方提供的annotation,使跟踪逻辑实现起来异常简单。 实现原理 用一个简单的公式来表述(从左往右的使用顺序):Sun Attach API + BTrace脚本解析引擎 + Objectweb ASM + JDK6 Instumentation 1,Sun Attach API是 ...
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。   这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。   网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。   RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采 ...
IPv6 还不能用于生产环境 IPv6 已经开发了20年了,最初的工作是在1992年展开的,叫做IP Next Generation,在1998年被标准化为 IPv6。在2008年在因特网上部署,并且2008年的奥运会服务器就支持 IPv6。在2011年6月8日,几个大型网站开始测试启用 IPv6,叫做Wor  
Global site tag (gtag.js) - Google Analytics