tristana

tristana

这家伙有点懒,还没写个性签名!

  • 财富值25
  • 威望值0
  • 总积分45

个人信息

  • 2017-10-24 已签到
    连续签到1天,获得了5个金钱
  • 赞了回答

    不明觉历

    1、既然有出处,好歹分享一下出处文章的链接吧(虽然搜索很好用,不过还是需要成本的)
    2、如果真的想理解php的内存分配,建议还是学学C相关的东西看看源码,或者请教下有相关经验的人,了解的会更透彻一些。

    不过既然写了回答,我也简单说点个人看法。当然也只是根据原文的意思揣摩,没有什么准确的依据。

    依照原文标题“请手动释放你的资源”,再围绕你节选的这段文字。php在执行的时候会申请两块内存(会自动释放一大块+一小块),当然这个“自动释放”是发生在执行结束的时候。然后就有了“后续的逻辑如果请求内存”,发现之前申请的大块内存已经被用完(可能包含了很多已经无效的资源,但是没有被手动释放),就会再次向操作系统申请内存。
    所以前后文所提到的重新申请内存,都是指大块内存,而不是保留下来的那块小内存,小内存是用于做引用计数或者说内存管理用的。也就是说,小块内存是给系统用的,而不是给业务逻辑代码自身用的,当进程执行结束之后会一并释放。
    进而可以知道,就是因为很多无效资源没有及时的释放,从而导致了需要多次申请内存,增加了系统开销。也就印证了文章标题“请手动释放你的资源”。

    还有一点想说的是,这个文章也比较老了,如果希望真正了解PHP内存管理的话,建议针对文章中提到的“垃圾回收”做一下扩展阅读。

    另外个人感觉80%做php的都不知道这个内存分配究竟是啥,当然也包括我
    这80%的人里面可能90%都不关心这个问题 哈哈

    顺便附上原文链接 http://www.laruence.com/2012/07/25/2662.html

  • 赞了回答

    百度一下

    解决方案1:取消SSL连接

    • 执行命令(ps:似乎没啥用)
      composer config -g -- disable-tls true

    解决方案2:启用OpenSSL

    • 将 php.ini中 extension=php_openssl.dll 去掉注释 “;” 号
  • 2017-09-05 已签到
    连续签到2天,获得了10个金钱
  • 2017-09-04 已签到
    连续签到1天,获得了5个金钱
  • 2017-08-30 已签到
    连续签到1天,获得了5个金钱
试用期 等级规则
45/50
资料完整度
10/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

1