V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  leonlu  ›  全部回复第 5 页 / 共 6 页
回复总数  114
1  2  3  4  5  6  
2015-01-11 01:36:30 +08:00
回复了 flash866 创建的主题 PHP 为什么 PHP 一直在优化程序执行效率,而不优化数据库连接?
@hitsmaxft 确实如你所言, 是我对php的认识不足. 刚刚补了一下这里的知识, 应该是这样的:

php有三种工作模式. 其中是最常见的是php作为一个模块工作在一个多进程的webserver中, 例如apache webserver. apache会启动一个主进程, 多个子进程(php). 主进程分发请求到子进程上处理. 目前流行的nginx + php-fpm应该也是类似这一种模式, ngnix会把请求转发给php-fpm处理. php-fpm是一个php进程管理器, 维护了一个php进程池, 在接收到请求后分发给php子进程.

在这种模式下, php进程可以是一直存活的. 进程启动时会做进程相关的初始化操作, 比如加载插件. 对于接收到的请求, 会做请求处理的相关初始化->调用相应的php代码做业务操作->销毁请求上下文. 对于php程序员来讲, 每个请求的处理都是全新的上下文, 所有定义/对象/变量完全限定在单个请求处理的这个上下文中. 大家写的php代码到此结束. 当然, php进程也可以被销毁, 这与php-fpm的工作模式有关. 更多细节详见相关文档1+2.

因此, 对于一个这样的php进程, 是可以做持久化数据库连接的, 只是稍有不同. 每个php进程只保留一个持久连接. 例如, php-fpm启动了20个php子进程, 对于同一个数据库和同一个用户名, 最多有20个持久连接. 对于同一个php进程所处理的多个请求, 它们都使用同一个数据库连接. 更多详见文档3.

所以, 这个效果与使用一个连接池也差不多了. 持久连接数取决与php进程的数量. 最终, 持久连接数量/进程数量就需要按实际的情况来调优了.

目前理解是这样, 如有误请指正.

相关文档:

1. php生命周期 http://www.slideshare.net/laruence/the-php-life-cycle
2. php-fpm配置文档: http://php.net/manual/en/install.fpm.configuration.php
3. php持久化连接: http://php.net/manual/en/features.persistent-connections.php
2015-01-10 23:42:09 +08:00
回复了 flash866 创建的主题 PHP 为什么 PHP 一直在优化程序执行效率,而不优化数据库连接?
@hitsmaxft php-fpm怎么做到的进程复用? 求指导...
2015-01-10 08:58:27 +08:00
回复了 leonlu 创建的主题 分享创造 [奇技淫巧] ie6fixed: 支持 ie6 的样式 position:fixed
@jucelin 同意你的观点. 不过, 降级有时候也要写不少的代码才成. 现在有一个降级的方案, 和不降级一样哟~方案还简单, 一共才100+行呢. 哈哈.
2015-01-10 08:54:13 +08:00
回复了 flash866 创建的主题 PHP 为什么 PHP 一直在优化程序执行效率,而不优化数据库连接?
php(不包括扩展)是使用进程做为最基础的调度单元的:

1. 一个请求, 新建一个php进程.
2. 一个进程里, 也只有一个线程.
3. 一个请求处理完成自动释放进程.

所以, 如果在一个请求里, 先搞一个数据库连接池, 请求结束再释放掉它, 成本太高了. php语言的设计者认为多线程是不安全的...异步编程是反人类的...所以他们把php设计成了这样的语言...
2015-01-10 00:24:32 +08:00
回复了 leonlu 创建的主题 分享创造 [奇技淫巧] ie6fixed: 支持 ie6 的样式 position:fixed
做为一个前端小哥, 我表示如果世界上只有chrome那该有多美好...

可是, 如果在ie6占到你网站流量的10%, 基本上也是你收入的10%, 老板说"10%收入你支持我打死你信不信"的情况下...你会选择离职还是支持ie6? @learnshare @crazyxin1988

我还是可耻地做了兼容...
2015-01-09 13:44:54 +08:00
回复了 iugo 创建的主题 Node.js IO.js 对 node.js 的影响大吗?
就像是hhvm和zend php. zend那么多年都不搞一下性能优化, 被hhvm啪啪啪打脸. 大家纷纷转向hhvm. 结果就是zend php跳过6版本, 直接php7, 但也要明年才发布. 而且是与hhvm一样快, 注意, 不是比hhvm快. 这说明zend在这个方面落后的实在太多了. 只能说明一个问题, 没有竞争就没有动力.

再看浏览器的竞争, 导致了前端的各种兼容性问题. 但是浏览器也是发展最快的软件产品. 看看上GB的webkit源代码, 就可以知道大家在这个产品上花了多少精力. 如果没有竞争(IE与网景也话都算得上恶性竞争了...), 也许没有兼容性问题, 但也许也就没有前端这个码农职位了.

io.js对nodejs, 应该也是一样的. 也许有一天我们会抛弃node, 转向io.js. 就像当年我们抛弃了ie转向chrome. 那只能说io.js已经比node优良很多了, 得总会大于失.

fork一下, 打打脸, 会有更好的明天.
2014-12-30 11:45:42 +08:00
回复了 coolicer 创建的主题 Node.js 读了一下 cookie-parser 这个插件,不是很领会
在服务器接受一个cookie的时候, 有个工作就是要鉴定这个cookie是不是合法的. 因为不怀好意者可以尝试伪造cookie. 所以cookie要有一个防伪. 这里用到的方法叫数字摘要.

假设cookie值是tom, 数字摘要的工作过程是这样的:

生成cookie

1. 设定一个密码, 假设是cat
2. 把cookie值和密码用|连接起来, 即tom|cat, 然后用摘要算法(例如sha1)生成签名, 假设签名为xyz(一般是base64的编码).
3. 最终发送cookie也是两个部分, 内容|签名, 即: tom|xyz

验证cookie

1. 将接收到的cookie值tom|xyz拆分成tom和xyz
2. 将cookie值与密码用|连接起来, 即tom|cat, 然后用同样的摘要算法生成签名, xyz
3. 对比上边拆分xyz和加密结果是否一致, 如果一致, 那么认为这个cookie合法.

一般来讲, 我们认为hash算法是单向的, 也就是不能从签名反向计算出来原文tom|cat. 这也就保证了我们的签名是安全的.

如果cookie的内容可能也比较敏感, 比如uid=1. 可以做一次加密. 这就要求能把原文1从密文中解出来. 可以用一下诸如aes等对称加密算法. 由于这个内容在客户上不用解密, 加密密钥也就不需要传输, 因此也是安全的.
2014-12-30 10:15:39 +08:00
回复了 yeelone 创建的主题 JavaScript 有没有人用过 Avalon 框架?前来说说感受呗
avalon在ie6-8上有vb的黑魔法...完全不敢用...
2014-12-29 21:51:33 +08:00
回复了 leonlu 创建的主题 Apple 香港买 iMac retina 人肉搬回深圳靠谱么? 求靠谱攻略...
@whuhacker 那这个iMac需要预约吗? 还是直接去店里拿就行了?
2014-12-28 11:51:42 +08:00
回复了 leonlu 创建的主题 Apple 香港买 iMac retina 人肉搬回深圳靠谱么? 求靠谱攻略...
@LamProductionS 亲, 确认iMac Retina快两万大洋只上几百块的税么? 只上几百的话就缴了...
2014-12-24 17:01:54 +08:00
回复了 pertersonvv 创建的主题 程序员 如何精通 div,css 布局呢?
去做一遍微博....
2014-12-08 14:59:19 +08:00
回复了 rainex 创建的主题 配件 mac 外接显示器连接线的实际使用结果( dp、vga、dvi)
@rainex 应该就是你说的这个原因. 不过我现在的内存使用也很夸张...8G内存对付日常开发已经不太够用了...
2014-12-08 10:12:26 +08:00
回复了 rainex 创建的主题 配件 mac 外接显示器连接线的实际使用结果( dp、vga、dvi)
现在的屏幕是2560*1440的, 线是mini-DP转DP, 用一段时间会卡...原因可能是rmbp是2013 late的吧...
@yyfearth 国外的精品基本也都收费吧。。。

精品不分国内外,都会有人情愿买单的;只是买单的国内人少些而已。。。
2014-10-21 19:54:22 +08:00
回复了 zjmdp 创建的主题 程序员 如何设计一套安全的账号系统?
如果是网站的话上https吧。。。解决90%的问题。。。
2014-10-20 14:19:11 +08:00
回复了 unstop 创建的主题 分享创造 番茄土豆 for Mac
bwpqctq8ks 已使用~谢谢~
2014-10-20 13:25:38 +08:00
回复了 unstop 创建的主题 分享创造 番茄土豆 for Mac
可以求一个码体验下么。。。
2014-10-05 12:30:17 +08:00
回复了 ibolee 创建的主题 配件 你买过最划算的 Apple 硬件(软件)是什么?
@otakustay 灰大你好奇葩。。。
2014-09-24 10:42:55 +08:00
回复了 ooh 创建的主题 分享发现 读关于男人衣着打扮的一片文章有感。。。
有胖子专供版本么?
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3036 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 14:35 · PVG 22:35 · LAX 07:35 · JFK 10:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.