heguangyu5 最近的时间轴更新
heguangyu5

heguangyu5

🏢  云招科技 / PHP
V2EX 第 159374 号会员,加入于 2016-02-18 14:10:24 +08:00
PHP 编译器 BPC 7.1 发布,成功编译 webman-admin
PHP  •  heguangyu5  •  28 天前  •  最后回复来自 lhyannis
6
heguangyu5 最近回复了
@a33291 非常感谢!
@skyworker 另外 php 和 BPC 不是二选一的问题,我们自己日常还是用 php 环境开发,只是在本地部署的项目上用 BPC 编译后发布出去.
@janus77 BPC 的测试就是随 PHP 源码发布的 phpt 测试, @see https://github.com/bob-php-compiler/bpc-release/wiki/04_phpt_tests
@skyworker

一段 php 程序,给定一个输入,得到一个或一些输出.
用 BPC 编译替换掉这段 php 程序,给定同样的输入,如果能得到同样的输出,那就够了.
此时外部已经无法分辨处理这处事情的程序是 php 还后 BPC 编译后的程序.

"底层可能有 bug"这种担心怎么说呢?我在开发 BPC 的过程中还发现了 php 的两个 bug,但是这并不影响我每天都用 php.

1. https://bugs.php.net/bug.php?id=81312
2. https://github.com/php/php-src/issues/12715

测试覆盖到你觉得你的程序没问题就够了.

比如 BPC 跑过了 php 的 phpt 测试后,我觉得 BPC 做到这里就够了.
BPC 跑通了云招 OurATS 的测试用例后,我觉得云招 OurATS 就够了.

如果你觉得无论多少测试都不能让你放心,那这就无解了,总要有个信任基础的.
@a33291 我是 java/.net 菜鸟. 经常看到 java 开发的 apk 被反编译, .net 程序去壳授权绕过.

自己写的.net 程序用 jetbrains dotPeek 一反编译, 好家伙, 一字不差.

所以能否推荐几个可靠的保护方案呢?
@skyworker 对于没有测试用例保障的项目来说,迁移到 BPC 确实是你说的"不清楚到底有多少坑要踩"

1 楼都说了, aot 反编译也 OK, 那 swoole 加密的安全性就更不让人放心了.
@NewYear 你确定?
@wxf666 这两个解决方案都是基于 hashtable 去重的,就是那个普通意义的 hashtable,没有什么花招,所以你的猜想都对.

hash 冲突了,就是要回源文件比较原始行,随机读有可能会很多.

但是如果能提前知晓数据的大致分布情况,可能会有更恰当的解决办法.

在不知道的情况下,这两个方案可以快速试错,然后找到正确的方向.
@Keuin 原 OP 也说了要尝试一下你的加行号方案,期待结果
@wxf666

2. 可以指定限制多少内存完成吗?

需要的内存是和要处理的数据量成正比的,如果内存不够,那就无法完成.

当然要在内存不够的情况下完成,那就是另一个解法了,耗时可能会很长,我一开始尝试了一个方案,因为无法较准确的预估处理完所需要的时间,所以就放弃了.

现在的这两个方案处理时间是可靠的,可等的,dedup-use-less-mem 可在约 10 小时左右的时间处理完 203 亿,一个晚上就能得出结论.
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2368 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 00:16 · PVG 08:16 · LAX 17:16 · JFK 20:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.