刚听说 PHP 代码发布到生产环境要去除掉代码里的注释,有这么操作的么,反正我是惊呆了!
1
whx20202 2017 年 7 月 6 日
不会吧
|
2
eoo 2017 年 7 月 6 日 via Android
JavaScript JAVA Python C C++ 代码里的注释会影响性能么?
|
3
echo1937 2017 年 7 月 6 日 via iPhone
你太小看现代编译器的水平了
|
4
U7Q5tLAex2FI0o0g 2017 年 7 月 6 日
肯定不会呀
|
5
zbl430 2017 年 7 月 6 日
php 引擎根本不对空行和注释进行解析,直接忽略掉。它们不参与计算代码行数也不参与程序的执行,对程序执行效率也没有影响!
你想呀,注释和空行如果会影响解析速度的话,为啥 phpDocument 里提倡大家多写注释呢!还有人说一份好的代码,有 50%以上的注释,才是正常的! |
6
binjoo 2017 年 7 月 6 日
代码运行的时候注释都会去忽略掉,应该不会影响吧。
求大神科普。 |
7
alqaz 2017 年 7 月 6 日
运行时要加载源码的语言肯定都会有影响,影响大小就不好说。
|
8
phx13ye 2017 年 7 月 6 日
编译器词法还是语法分析阶段会帮你做
|
9
zhanglintc 2017 年 7 月 6 日 via iPhone
嗯?这么说好像还真有点可能,解释型语言毕竟判断它是注释也是要花时间的。
|
10
mokeyjay 2017 年 7 月 6 日 via Android
理论上,纯净的 php 在每次执行时都会读取源文件并解析,较大的源文件会影响读取速度
实际上影响忽略不计,再说都直接上 opcache 或其他缓存技术了,也不会每次都读源文件 |
11
TIGERB 2017 年 7 月 6 日
谁说的,叫出来聊聊
|
12
lightening 2017 年 7 月 6 日
毕竟要多读几个字节,应该是要花时间的吧?
|
13
honeycomb 2017 年 7 月 6 日
静态语言,仅会在编译时增加一点点 IO 开销
如果是 javascript 的情况,类似地也只有加载到内存时有可以忽略的 IO 开销,相比之下,将其从云端传输到客户端的开销会因为注释导致的 js 体积增大而增加 |
14
sfz97308 2017 年 7 月 6 日 编译型的语言一定不会影响,因为编译的时候就已经把所有注释滤掉了。
解释型的语言可能有一点点影响吧,毕竟运行的时候才去过滤注释。 至于 PHP... 应该影响不大吧,毕竟是最好的语言 :doge: |
15
explon 2017 年 7 月 6 日 楼主可以考虑换家公司了
|
16
Shura 2017 年 7 月 6 日 via Android
词法分析阶段就解决了
|
17
LINAICAI 2017 年 7 月 6 日
编译型没影响,脚本型不好说,但你注释能有多少啊。
|
18
shiny PRO 早年的 thinphp 会这么干,而且还会合并文件。目的大概是为了减少 IO 开销,但现代 PHP 这方面优化的已经足够好了。
|
19
forelegance 2017 年 7 月 6 日
缩进和注释都影响性能,恩
|
20
lurenw 2017 年 7 月 6 日
可能会增加一丢丢的时间,这一丢丢时间还只是 IO 的消耗,基本可以忽略不计,除非你有巨多巨多的注释
|
21
jason2017 2017 年 7 月 6 日
不太了解 PHP,但是 java 编译成 class 文件的时候,注释都是被忽略的。
ps:PHP 果然是最好的语言。 |
22
rocksolid 2017 年 7 月 6 日
除非你单个文件注释能到 m 级别
|
23
qui9090 2017 年 7 月 6 日
公司让去掉注释可能不一定是为了性能考虑的
|
24
jun4rui 2017 年 7 月 6 日
20 年前我刚学变成书上就写编译器会把注释都过滤掉了。
再换个思路,楼主你想想,注释要怎样才能产生写成 CPU 能执行的代码啊?注释根本就不会被 CPU 执行,就不能能占用 CPU 时间,自然也就不会降低运行速度,是不是? 想通了就不会有疑问了。 |
25
Microi 2017 年 7 月 6 日 可以忽略不计吧,除非你把《冰与火之歌》或者《哈利波特》拷贝到注释里。
|
26
Tairy OP @zbl430 我也觉得注释详细了好啊。
@binjoo 估计会影响文件加载,运行不会影响。 @forelegance 那 python 岂不是不活了。 @rocksolid 整个文件都上不了 M,我就是用了 api-doc 把生成文档的东西写在注释里了。 |
28
jasontse 2017 年 7 月 6 日 via iPad
注释又不会编译成 opcode,有 opcache 在哪来的开销。
|
29
Ouyangan 2017 年 7 月 6 日
这个问题很可爱 .
|
30
lifeiselsewhere 2017 年 7 月 6 日
不写注释也得找个靠谱的理由,即使是解释型语言,注释对性能的影响可以完全忽略。
|
31
Leafove 2017 年 7 月 6 日
有影响,但是完全可以忽略不计..
什么?!你的项目里有 80 万行注释?! |
32
ahkxhyl 2017 年 7 月 6 日
看到你们在喷他 我就放心了~~
|
33
learnshare 2017 年 7 月 6 日
应该有影响,毕竟文件体积变大了,读硬盘的时候多了一点时间
|
34
cxbig 2017 年 7 月 6 日
没有影响。除非你的线上项目是不带任何缓存跑的
|
35
damondev 2017 年 7 月 6 日
会的不写注释的 app 感觉手机都轻了几十克🤣
|
36
Mac 2017 年 7 月 6 日
可能只是防止代码被直接打包出售,你们的生产环境是托管的?
|
37
sagaxu 2017 年 7 月 6 日 via Android
你写个 100G 的注释,看看会不会影响性能
|
38
Deeer 2017 年 7 月 6 日
告诉我,你是写了多少注释才想到这个问题的?
|
39
zhuangtongfa 2017 年 7 月 6 日
编译型只会影响编译性能,不会影响执行性能
解释性多少会影响,比如你写个几 G 的注释试试,但是实际上影响不大,毕竟一本纯文本小说也就几 Kb,你注释再多也不会多到哪去,不写还影响可读性和维护性 |
40
hinate 2017 年 7 月 6 日
可能会影响项目的大小吧?
|
41
anyforever 2017 年 7 月 6 日
你这项目是有多大啊。。
还是从其他方面优化性能来的更快吧。 |
42
litter123 2017 年 7 月 6 日 via Android
@zhuangtongfa 纯文本小说几 K 的,你看的小说太小,唐三合集都 40-50MB 了,普通记事本打开都得卡半天
|
43
zjsxwc 2017 年 7 月 6 日 我记得 Python 确实是注释越多越慢; PHP 有 opcode 之类的,而且像 symfony 这种会把代码“编译”压缩成新的 php 文件也没有这种问题。
|
44
orderc 2017 年 7 月 6 日
变量名也要简写用 a, ac, cd,减少磁盘占用空间,且不要有任何缩进。
|
45
Tairy OP @lifeiselsewhere 不是找理由不写注释,只是今天突然听到这种操作,有点惊讶,才来问问的。
@Mac 不是,都是普通的 web 代码,没啥值得保护的。 @sagaxu 写一辈子代码估计也干不出 100 G 的注释了。 @Deeer 只是今天突然听到这种操作,有点惊讶,才来问问的。 @anyforever 我也觉得考虑这个就有点过度优化了。 |
46
findmyself 2017 年 7 月 6 日
这个问题很刁钻
|
47
vingz 2017 年 7 月 6 日
代码先是给人看,然后才是运行的;注释必须有,不影响性能;编译器忽略注释
|
48
y1shan 2017 年 7 月 6 日
我会用这个给自己找懒的理由
|
49
pangliang 2017 年 7 月 6 日
要说会不会, 肯定会, 就算是跳过, 解释器解释的时候也需要 cpu 去 if 然后跳过啊
但是, 这种影响 的 占比 相对其他因素, 根本不是一个量级.... 一个 php 请求用 ms 记时的话, 这种多了一点注释的影响 则是 us 级别 |
50
cnZary 2017 年 7 月 6 日
php 的话
讲道理至少在 i/o 上会有点区别吧 |
51
visionsmile 2017 年 7 月 6 日
C++里预处理之后注释都没有了,完全没有运行时开销!(逃
|
53
facetest 2017 年 7 月 6 日 via Android
解释执行的话,把射雕英雄传贴进去会怎样?
|
54
fen 2017 年 7 月 6 日
来局农药压压惊
|
55
MrMario 2017 年 7 月 6 日 via iPhone
会,会影响网络传输,但我们去除注释主要是考虑到 js 混淆被逆,加大一些难度而已
|
57
cutoutsy 2017 年 7 月 6 日
去掉注释难道不是因为文件大小,生产环境一般都是去掉注释再压缩什么的
|
58
manihome 2017 年 7 月 6 日
难道代码不应该写在一行里?(偷笑.gif )
|
59
run2 2017 年 7 月 6 日
和(说这话的)他们说话会影响代码性能的,真的!
|
61
snnn 2017 年 7 月 6 日 via Android
会啊。js 发布前都要做这个的
|
62
sampeng 2017 年 7 月 6 日
有这样的同事,我想会影响我的性能。。。
|
66
jfcherng 2017 年 7 月 6 日 某些注釋並不會被忽略,你甚至可以由代碼取得注釋。
http://php.net/manual/en/reflectionclass.getdoccomment.php |
67
alwayshere 2017 年 7 月 6 日 那要看你的服务器用的是水电、火电还是风电,一般来讲,用水电和火电的服务器编译器在编译 PHP 文件时性能彪悍,用风电的服务器编译 PHP 文件时性能没那么好,因为风电太缓而且柔,最好的还是核电,你把新华字典写进注释都没问题,所以一般抗 DDOS 的服务器都必须拉大亚湾核电专线
|
68
dryyun 2017 年 7 月 6 日
也就是注释多于代码罢了,没什么大不了。
|
70
0915240 2017 年 7 月 6 日
像 js html 之类的,所以一般 js 都有压缩,直接加载的肯定有的,但是当然这要你的注释量有多大啊。
编译类型的如 java,则没影响(不影响运行)。 |
71
BB9z 2017 年 7 月 6 日
贴主这标题误导人了吧,导致上面 60 多楼都在说性能……
被要求的是 PHP 代码发布到生产环境去注释,会不会是团队在安全或产权保护(客户的服务器,不想给产品代码)上考虑的? 另,应该是有工具去除的吧。 |
75
fangxing204 2017 年 7 月 6 日 via Android
就算有,也是第一次加载文件时
|
76
SuperMild 2017 年 7 月 6 日
js 大多数都会有个 min 版本,这就很能说明问题了。
|
77
johnnie502 2017 年 7 月 6 日 via Android
@SuperMild js 主要考虑网络传输的开销,php 是服务器端运行,两码事
|
78
fuyufjh 2017 年 7 月 6 日
即使是动态语言,影响也可以小到忽略。不信你写个“遇到 //就跳过直到换行”的程序,吞吐量应该在 GB/s 级别
|
79
wclebb 2017 年 7 月 6 日 via iPhone
如果一定要去掉 zhi yi
|
80
anyele 2017 年 7 月 6 日 via Android
太搞笑了
|
81
luoluoluo 2017 年 7 月 6 日
楼主很棒,今日最佳!
哈哈哈哈嘿嘿嘿嘿红红火火恍恍惚惚 |
82
leitwolf 2017 年 7 月 6 日
如果这都要考虑,那不用编程了。这种都能影响到性能的话,可以考虑更低级的语言,或者加点钱,升级一下硬件。
|
83
loading 2017 年 7 月 6 日 via Android
脚本需要应该有点,但微乎其微。
实在不行,做个 js 压缩那种工具,去注释。 |
84
qhxin 2017 年 7 月 6 日
当年我们的程序在线上,框架的核心会是要根据 include 情况来合并到一个文件的,目的是为了减小读硬盘的次数,解析速度真的对整个请求响应时间是有影响的,严重的有几百毫秒的差距呢,当然现在上编译缓存基本不考虑这些了
|
86
mingyun 2017 年 7 月 6 日
还有这种操作
|
88
ms2008 2017 年 7 月 6 日
|
89
ricemo 2017 年 7 月 6 日
论大学《编译原理》课程重要性
|
90
scriptB0y 2017 年 7 月 6 日
真的会影响性能,如果不去掉注释发布的时候性能会快一些
|
91
SlipStupig 2017 年 7 月 6 日
@zjsxwc python 用文档符会有但是,注释符不会有的,因为 python 是 AST 生成代码的,不存在你说的这种问题
|
92
ikaros 2017 年 7 月 6 日
影响写代码的效率 和 别人维护的效率
|
93
fangxing204 2017 年 7 月 6 日
|
94
akira 2017 年 7 月 7 日
过度优化了。 最大的可能影响的地方就是加载 php 文件时候的 io 损耗了,但是,如果你们到了需要计较这点损耗的时候,早就上编译缓存了啦
|
95
Perry 2017 年 7 月 7 日
只有 HTML JS CSS 才需要吧。。。
|
96
popbones 2017 年 7 月 7 日
应该是有影响,不过想要体验到这个估计除非你的源码很大很大,比如 1G 的源码,半个 G 的注释,或者从 5 寸盘读取源码估计能体验到
|
97
Monstercat 2017 年 7 月 7 日 via Android
理论上肯定会的 毕竟要多读一些文本 解释性语言就是解释的时候慢 编译性就是编译的时候。。然而几乎可以完全忽略不计。。
|
98
keikeizhang 2017 年 7 月 7 日
忽略不计
|
99
jedicxl 2017 年 7 月 7 日 via iPhone
不会影响性能,会影响性功能
|
100
loongwang 2017 年 7 月 7 日
编译原理没好好学吧
|