摘要:
前一段时间,部门接入了新业务,由于业务量小,架构非常简单,采用了最简单的LNMP架构,整个项目是交给一个刚毕业的RD负责的,这是背景。 上线前半天,服务平稳运行。下午的时候,开始收到大量报警:No host could be connected in the cluster。第一反应:mysql服务 阅读全文
摘要:
一次冗长繁琐的排错经历 白白忙活了一个下午+半个早饭的时间。感慨一下, 解决问题的思路很重要啊,否者就会像无头苍蝇一样,到处乱撞。 因项目关系,需要在测试环境中开启https,悲剧的是,在经过了机器迁移之后,之前可用的https连接失败了: 而Nginx中也只有寥寥几行的错误日志: 这里首先说明一下 阅读全文
摘要:
切,一个字符串有什么好研究的。别这么说,看过《平凡的世界》么,平凡的字符串也可以有不平凡的故事。试看:(1) 在C语言中,strlen计算字符串的时间复杂度是?PHP中呢?(2) 在PHP中,怎样处理多字节字符串?PHP对unicode的支持如何?同样是字符串,为什么c语言与C++/PHP/Java... 阅读全文
摘要:
年前因为工作比较饱和,现在又忙着换工作的事情,基本停止了对博文的更新。后续的博文,还是慢慢补上吧。为了不至于过于发散,先搞个未成形的大纲,如下: PHP内核探索之变量 不平凡的字符串 PHP内核探索之变量 变量的生命周期、类型转换 PHP内核探索之变量 变量的循环(foreach,其实放到Ze... 阅读全文
摘要:
这次说说session. session可以说是当前互联网提到的最多的名词之一了。它的含义很宽泛,可以指任何一次完整的事务交互(会话):如发送一次HTTP请求并接受响应,执行一条SQL语句都可以看做一次Session。如无特殊说明,本文中提到的Session单指HTTP会话。本文是PHP内核探... 阅读全文
摘要:
上一节(PHP内核探索之变量(3)- hash table),我们已经知道,数组在PHP的底层实际上是HashTable(链接法解决冲突),本文将对最常用的函数系列-数组操作的相关函数做进一步的跟踪。本文主要内容:PHP中提供的数组操作函数数组操作函数的实现结语参考文献一、PHP中提供的数组操作函数... 阅读全文
摘要:
在PHP中,除了zval, 另一个比较重要的数据结构非hash table莫属,例如我们最常见的数组,在底层便是hash table。除了数组,在线程安全(TSRM)、GC、资源管理、Global变量、ini配置管理中,几乎都有Hash table的踪迹(上一次我们也提到,符号表也是使用Hash ... 阅读全文
摘要:
本文主要内容:引论符号表与zval引用原理回到最初的问题一、引论 很久之前写了一篇关于引用的文章,当时写的寥寥草草,很多原理都没有说清楚。最近在翻阅Derick Rethans(home: http://derickrethans.nl/ Github: https://github.com/de... 阅读全文
摘要:
作为数据的容器,我们常常需要跟变量打交道,不管这个变量是数字、数组、字符串、对象还是其他,因而可以说变量是构成语言的不可或缺的基础。本文是PHP内核探索之变量的第一篇,主要介绍zval的基本知识,包括如下几个方面的内容:Zval的基本结构查看zval的方法:debug_zval_dump和xdebu... 阅读全文
摘要:
本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西。但想了下,还是记录一下吧,也许有人会用到呢。 不知你是否碰到过这样的情况,当你兴致勃勃的打开VIM,写代码写到正酣时,运营MM或者产品MM气喘吁吁的跑过来:“赶紧帮我跑一下xx的数据,一会做... 阅读全文
摘要:
1. 基本介绍 /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。 这两个设备的差异在于:/dev/random的... 阅读全文
摘要:
由于写作仓促,文中难免会有错误,欢迎指出。 问题描述 首先这里对单词的界定是:以空白分割的字符序列。单词统计的问题可以描述为:在一篇正常格式的英文文档中(作为面试,这里并没有提及中文分词和单词统计的问题),统计每个单词出现的次数,要求统计出现次数最多的N个单词和相应的出现次数。问题简单明了,无需对字 阅读全文
摘要:
一、参考文献: xgboost核心手册:https://xgboost.readthedocs.io/en/stable/ scikit-learn:https://scikit-learn.org/stable/ 两个不错的教学视频: https://www.youtube.com/watch?v 阅读全文
摘要:
原文地址: https://cloud.tencent.com/developer/article/1526902 数学 1.列举常用的最优化方法 梯度下降法 牛顿法 拟牛顿法 坐标下降法 梯度下降法的改进型如AdaDelta,AdaGrad,Adam,NAG等。 2.梯度下降法的关键点 梯度下降法 阅读全文
摘要:
前言– 追寻大牛的足迹,无处不在的“性能”问题。 最近在读郭欣大牛的《构建高性能Web站点》,读完收益颇多。作者从HTTP、多级缓存、服务器并发策略、数据库、负载均衡、分布式文件系统多个方面娓娓道来,洋洋洒洒,甚是精彩,想来让人心旷神怡。 但“纸上得来终觉浅,绝知此事要躬行”,要消化本书的内容,绝... 阅读全文
摘要:
时刻提醒自己,不进步意味着倒退。2015年准备读完的技术书籍:1. 《Redis设计与实现》2. 《高可用MySQL:构建健壮的数据中心》3. 《高性能Mysql》4. 《深入浅出Node.js》5. 《算法 第4版 Algorithms Fourth Edition》6. 《深入PHP:面向对象、... 阅读全文
摘要:
前段时间,商城在做促销活动的时候,我们的测试人员也买了一些商品,但是时隔多天一直没有收到快递,很是纳闷。经过开发同学的确认,该订单的邮递地址为:北京市火星区xxx,电话号码15555555555,这显然不是一个合理的邮寄地址。由于之前确认过线上并不存在SQL注入的可能性,因此只可能是线上的正常流... 阅读全文
摘要:
本篇并不是对某一组件的详细源码分析,而只是简单的跟踪了下CI的autoload的基本流程。因此,可以看做是Loader组件的分析前篇。CI框架中,允许你配置autoload数组,这样,在你的应用程序初始化时,会自动加载相应的类库,例如,在application/config/autoload.php... 阅读全文
摘要:
最近时间有些紧,源码阅读系列更新有些慢。鉴于Controller中代码比较少,本次Blog先更新该文件的源码分析。 在经过路由分发之后,实际的应用Controller接管用户的所有请求,并负责与用户数据的交互。CI中所有的应用控制器都应该是CI_Controller的子类(除非你扩展了CI的核... 阅读全文
摘要:
一个灵活可控的应用程序中,必然会存在大量的可控参数(我们称为配置),例如在CI的主配置文件中(这里指Application/Config/Config.php文件),有如下多项配置:$config['base_url'] = 'http://test.xq.com';$config['index... 阅读全文
摘要:
CI框架允许你在不修改系统核心代码的基础上添加或者更改系统的核心功能(如重写缓存、输出等)。例如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = TRUE;),通过添加特定的钩子,可以让系统在特定的时刻触发特定的脚本:$hook['post_... 阅读全文
摘要:
上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的。这些组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI的核心骨架。 从本篇开始,将进一步去分析各组件的实现... 阅读全文
摘要:
到了这里,终于进入CI框架的核心了。既然是“引导”文件,那么就是对用户的请求、参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位。例如,用户的请求url:http://you.host.com/usr/reg经过引导文件,实际上会交给Application中的UsrController... 阅读全文