heguangyu5 最近的时间轴更新
heguangyu5

heguangyu5

🏢  云招科技 / PHP
V2EX 第 159374 号会员,加入于 2016-02-18 14:10:24 +08:00
PHP 编译器 BPC 的第一个成功案例来了!
  •  1   
    PHP  •  heguangyu5  •  90 天前  •  最后回复来自 heguangyu5
    11
    分享一次替 Boss 直聘企业端 Debug 的经历
    Chrome  •  heguangyu5  •  2021-03-23 16:11:05 PM  •  最后回复来自 Jat001
    3
    吃了个友商的瓜,给大家乐呵乐呵
    分享发现  •  heguangyu5  •  2020-08-05 16:16:00 PM  •  最后回复来自 back0893
    4
    为什么说 PHP 单元测试落地很难之运行速度
    PHP  •  heguangyu5  •  2020-08-08 12:38:37 PM  •  最后回复来自 ywisax
    5
    还不会用 Wireshark 抓 https 包的进来看看
  •  1   
    PHP  •  heguangyu5  •  2020-07-08 13:51:06 PM  •  最后回复来自 heguangyu5
    15
    heguangyu5 最近回复了
    90 天前
    回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
    @littleylv 欢迎你在我支持了 namespace traits 后再来关注

    不管怎么说,能按自己的喜好做事,真的很棒! 这得感谢云招 OurATS 宽松自由的环境和给力的同事!
    91 天前
    回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
    @xumng123 万里长城第一步,你看微软做的 peachpie strlen 返回值还不对呢,俄罗斯做的 kphp 还不支持 calling by name 呢.
    91 天前
    回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
    @mrgeneral

    1. namespace 个人不喜欢,用的也不多,真的用到的地方可以调整成不用 namespace 的,个人更偏好 A_B_C 这种全名的.
    2. 匿名函数是支持的,但是不支持 use 语法.这个是因为没花时间去看到底该怎么支持.
    3. generators,traits 我们自己的项目没有用到.

    这个项目当前还处在很早期,看实际需求,也许后边会支持这些特性.
    91 天前
    回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
    @0o0O0o0O0o 简历解析是个很成熟的软件了,有好几家在做.你可以了解一下他们的部署下来是多大,650M 已经很小了,我见过好几个 G 的呢.
    91 天前
    回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
    @watcher 需求本身就是自己的,先满足自己再说.

    至于落地,至少在云招已经落地了,线上在跑的简历解析已经不是 php 了,而是 BPC 编译后的可执行文件.
    可以看看我的这个 https://www.v2ex.com/t/826154

    被网友称为"玩具"

    这个"玩具"(BPC)兼容 PHP,也就是说,同样的 PHP 代码,用 php 执行出来的结果和 BPC 编译执行出来的结果是一样的.如果当作黑盒子用的话,我不说是 BPC,一般情况下外部来看就是 PHP.

    虽然我是走编译成二进制的路子,但是也可以做成解释执行的,只不过解释执行对我没用,就没做.

    具体实现思路的话,首先要实现一个要兼容的语言的核心或者说 runtime,这个核心保证了你的解释器和那个语言的行为是一致的,比如拿 PHP 来说,两个 int 相加,如果溢出了,就返回 float 而不是溢出,那么你的 runtime 里就要对加法这样来实现.
    然后再定义 /实现一个添加扩展函数或类的机制,来在 runtime 之外增加你需要的 user 及 user.transfer()

    再接下来就是 lexer parser 那一套了,解析脚本在做什么,调用 runtime 和扩展函数执行给出结果.
    143 天前
    回复了 yaleyu 创建的主题 Linux 求个 mdadm 非邮件方式发送告警的办法
    man mdadm

    ...

    MONITOR MODE

    ...

    When passing events to a program, the program is run once for each event, and is given 2 or 3 command-line
    arguments: the first is the name of the event (see below), the second is the name of the md device which is
    affected, and the third is the name of a related device if relevant (such as a component device that has
    failed).
    有个 lib 叫 LMDB, http://www.lmdb.tech/doc/
    基于 LMDB 有个项目叫 memcachedb, https://github.com/LMDB/memcachedb
    可以对 memcachedb 做下改造,新增加一个 mmap 的巨大文件(当然要控制一下这个文件占用的 file cache 大小),然后把图片和 pdf 文件保存到这个大文件里,然后将 offset 保存到 memcachedb 的 LMDB 文件里,再让 LMDB 文件始终都在内存里.
    这样文件的查找和新增都是在操作内存中的 LMDB,文件的写入和读取都是基于 mmap,只要内存稍大一点,应该就不是问题了.
    358 天前
    回复了 FenixVu 创建的主题 Linux 百万数量级小文件迁移怎么做?
    机械硬盘的话试试这个 https://github.com/heguangyu5/qtar

    原理就是先给要 copy 的文件排序,让接下来 tar 读取文件时尽可能少地移动磁头什么的,时间有点久记不清楚了.

    我们用这个工具迁移了千万数量级小文件,比简单的 cp 什么地快很多.
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2619 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 12:29 · PVG 20:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.