61阅读

将比特率更高的歌曲-A && B || C 的效率比 A ? B : C 更高吗?

发布时间:2017-10-09 所属栏目:业界

一 : A && B || C 的效率比 A ? B : C 更高吗?


网友杨志[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
首先这两个表达方式并不完全等同,举个简答你例子true&&0||2的值为2;而true?0:2的值为0。

单单就效率问题,后者更高。
他们的计算过程:
前者:The production LogicalANDExpression : LogicalANDExpression && BitwiseORExpression is evaluated as follows:
1. Let lref be the result of evaluating LogicalANDExpression.
2. Let lval be GetValue(lref).
3. If ToBoolean(lval) is false, return lval.
4. Let rref be the result of evaluating BitwiseORExpression.
5. Return GetValue(rref).


The production LogicalORExpression : LogicalORExpression || LogicalANDExpression is evaluated as follows:
1. Let lref be the result of evaluating LogicalORExpression.
2. Let lval be GetValue(lref).
3. If ToBoolean(lval) is true, return lval.
4. Let rref be the result of evaluating LogicalANDExpression.
5. Return GetValue(rref).


后者:The production ConditionalExpression : LogicalORExpression ? AssignmentExpression : AssignmentExpression is evaluated as follows:
1. Let lref be the result of evaluating LogicalORExpression.
2. If ToBoolean(GetValue(lref)) is true, then
a. Let trueRef be the result of evaluating the first AssignmentExpression.
b. Return GetValue(trueRef).
3. Else
a. Let falseRef be the result of evaluating the second AssignmentExpression.
b. Return GetValue(falseRef).另外,三元运算符的效率比if else高。因为if else往往会产生地址跳转,使得缓存中预加载进来的内容失效,cache不命中,重新从内存取。而三元运算符避免了这种问题。


网友蒙面大侠[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
update:
刚看完霍比特人预告片2回来, 看到许多评论的我眼泪掉下来, 并陷入了深深的沉思.
之前看过多次预告片2的预告短片, 我对女护卫队长毫无感觉, 觉得毫无亮点, 但是当她出现在屏幕上的那一瞬间, 我发觉我已经深深地爱上了她, 刹那间脑中浮现的就只有那天夕阳下的奔跑.....
要知道我看的是最烂的偏振3D, 要是看UltraAVX HFR我不知道我会不会一口老血溅当场
通过今晚的观影经验, 我得出一个定理, 不要过早做出武断的结论啊....


对了上面那个结论是对你说的@Qin Wei, 我无意与你争长短, 但是我觉得你说得不对, 我怕当年的我受你误导, 所以在这里说一下:

做题和实战不同没什么问题, 我没说做题和实战不同有问题, 我相信我表达的意思是"这类问题"贻害人间.
教科书上也没让你那么写代码。 我不认为, 写在教材上花时间让你搞的东西是"没让你那么写代码", 它有标注"同学们, 这是反例, 引以为鉴呐, 这么写是要扣分的呀"吗? 退99.9%步, 不论教材意欲何为, 至少它造成了这样的后果, 这种现象就值得批驳. 而且面对黑风双煞我觉得武林中正派人士不必讲什么江湖道义, 后退都是多余的起手两招名曰偷换概念, 也叫稻草人谬误, 出自史记

那些看上变态的考题不过是为了加深对概念的理解。 我不认为, 那种考题是为了加深对概念的理解, 因为我小时候看过一则故事叫三重楼喻续招唤作转移话题其疾如风, 孙子兵法有载

要从实用上考虑课本上99%的题都无法直接影射到实践中去那么是不是要说习题都无用呢。 我没说课本和实践无法直接影射, 我说的是教材教了很多错误的思想, 我也没说习题勿用, 我说黑风双煞害人大招揉杂了以偏概全和转移话题两招, 端的凌厉了得

篮球运动员要推胸这样的基础练习, 而在赛场上没有杠铃让你去推那是否能说练习卧推也无用呢。呃...如果不是我由于深度沉浸在队长的倩影中导致记忆紊乱, 球员力量训练应该是卧推, 推胸什么的, 感觉好黄好暴力, 好像是100分前夜的消遣...不知道是不是我想多了.... 卧推是科学且标准的力量训练方法, 如果你非要用这个类比, 应该是等到我说了"实践中也不要你手写数据结构和算法所以学数据结构和算法是无用的"这种话之后的事情.... 我觉得篮球里面能和黑风双煞类比的应该是掐腰子, 伸黑脚, 推后背. 无论如何, 错误的东西也不可能是基础知识的组成部分, 对吧?最后一击以转移话题以偏概全偷换概念做超必杀, 显然是跑江湖的老手所为. 若不是这个姓曲多读了几本书, 怕是早已命丧当场

再说这回答离题也太远了吧 居然100多个赞我不觉得针对这样一个简单疑问句的问题用"YES" or "NO"来作答是更近的答案


最后向 @Qin Wei 你也是向大家推荐一本书 学会提问 (豆瓣), 可助你有效抓住问题本质, 避免逻辑谬误, 有病治病没病防身, 男可滋阴壮阳女可益气养颜, 少年朋友看了可以一夜会连点七个赞, 老年朋友看了反对也有力了, 没有帮助也更勤奋了, 一口气几十个反对+举报也不会费劲了. 一本书你看不来吃亏, 一本书你也看不了上当....

最后的最后有人问黑风双煞是谁, ref如下:
谭浩强在程序员圈子里的口碑如何?为什么?

+++++++

这是一个老问题了, 不过戳到了我的不爽点....

这是一个教育缺陷, 即专业程序员和业界的共识与学校教育严重不相符
学校教书, 喜欢扯一些茴香豆问题来试图难倒你
学校和老师在乎的, 是能不能用茴香豆树立权威碾压你
比如

a=i+++++i //a是几(a=2*3)=4*5//a是几//心虚的我决定申明一下上面的代码是黑风双煞的手笔//我是万万不敢不加空格不加括号乱取名字滥用异形代码的


网友无月[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
这两个段代码,根本就不能完全替代对方,讨论效率又有什么意义呢?
比如:

var A = true;var B = 0;var C = 1;A && B || C; // 结果1A ? B : C; // 结果0


网友蒙面大侠[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
语义不等价,比较无意义


网友pansz[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
明确反对曲维姜的观点。

这个世界上有少量的人写好了编译器优化器解释器就是为了让大量的人无需亲自关心编译器的细节。

这个世界上有少量的人研究这类问题就是为了让大量的人无需研究这类问题的。

但这并不意味着少量的人不能到公开的论坛讨论问题。
也不意味着仅对少量人有价值的问题就没有拿出来讨论的意义。

所以,每个问题都有价值。包括这个问题。

为了让有价值的答案得到应有的尊重,请大家赞同杨志的观点。

补充:有人认为性能优化不必要,这错得太离谱了,你若是解释器的作者,你若是编译优化器的作者,你永远要把性能优先!

那些总叫喊着性能无用论的人也许忘了,程序之所以有靠谱的性能,是因为编译器优化器的作者把性能优化到了极致而已。

如果所有人都不考虑性能。。。对不起 ,很多语言完全没有可用性。例如Java,C#,虚拟机的作者如果不考虑性能,这两个语言根本没法用,远远到不了今天的地位,如果写Java虚拟机的人不在乎性能,如果没有年复一年的大量的人为一点一滴优化Java虚拟机性能进行的「持久的努力」,Java只会被C跟C++使用者爆出shit。


网友陈焕新[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
A ? B : C 比 A && B || C 效率高,这里简单写了测试:http://jsperf.com/a-b-c-vs-a-b-c
其中 Other 是 IE11,不知为何 jsperf 没认出来
大家也可以用其他浏览器进入那个链接,点 Run tests 按钮试试
a和c谁比较高呢 A && B || C 的效率比 A ? B : C 更高吗?


网友winter[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
这个效率如何取决于引擎写的怎么样,我要是写引擎的时候给||表达式里面加个跑一百万次的空循环,效率肯定就低了。

行为上,A && B || C 这个里面,
当A和B都为true的时候C不执行
当A为false的时候B不执行
而 A ? B : C 这里,A、B和C都一定会执行,假如B或者是一个执行耗时很长的表达式,那么的确可能效率有差别。

在大多数情况下,这些效率差距非常微小,而且网页的性能瓶颈多为下载和layout,请考虑CDN和优化文件下载顺序,优化CSS布局这些事情。不要为了时间的小数点后几位做一些没有意义的优化。


网友蒙面大侠[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
这两个的返回值都不一样吧?


网友蒙面大侠[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
你不需要管这个两个谁效率高,只需要知道要选后者这种形式,前者是有问题的。
因为A && B || C 这种写法在gcc里面是会报warning的。&&的结合顺序高于||,在两者同时出现在一个表达式里的时候,请为做&&运算的部分加上括号: (A&&B) || C


网友蒙面大侠[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
首先,前面一种写法让我看着头疼。
其次,在我遇到的几乎所有需要追求性能的场合,性能热点也是来自上层的业务逻辑,而不是某一条语句。


网友蒙面大侠[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
这根js的解析过程有关,js有个机制叫“逻辑短路”,所谓逻辑短路是指:在”||” 运算中,第一个条件符合就结束判断。
在”&&”运算中,第一个条件不符合就结束判断。所以A && B || C语句中如果A位false后面就不用执行了,AB为True后面也不用执行了,效率要比A ? B : C 稍高。不过这点速度不会影响什么,顶多就是作为一个知识点考察一下。


网友左江[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
A && B || C
A真
B假
C求值
A ? B : C
A真
B求值 不管结果真假任何
C都不会求值

2表达式 逻辑根本不一样
使用场景不同
没有比较的必要

另外纠结这种 i++ 快还是 ++i 快 实在 是没必要


网友蒙面大侠[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
代码的清晰性最重要,这类奇技淫巧还是让编译器去考虑吧。


网友张磊[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
我表示程序是给人看的,题主所谓效率真的没那么严重。


网友补佳林[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:
a and b or c在lua里面是代替a ? b : c的, lua发明者在教程里说的,搞清楚使用范围。
因为lua没有?:运算符.


网友匿名用户[a和c谁比较高呢]A && B || C 的效率比 A ? B : C 更高吗?给出的答复:

不知道,感觉第一个效率高。因为指令集种一般有直接进行逻辑操作的指令,但是!效率高有什么用?第一个能一眼看出来什么意思吗?

“程序是写给人看的,恰好计算机能运行,仅此而已 。”

跑题了,求折叠。



杨志的答案是对的 。刚才试了一下,第二句生成的汇编指令比第一条少。

二 : CNN:谷歌将面临比微软当年更多的调查

【赛迪网讯】9月6日消息,据国外媒体报道,《CNN》报道认为,谷歌现在就像是新版的微软。

谷歌占据了网络搜索,只消小小地更动搜索引擎,对某些公司即可能造成天差地别的结果。谷歌也用其丰厚的现金资本同时大肆扩展事业版图,从线上视频、社交网站到智能手机。

而谷歌的创办人拉里佩奇与比尔盖茨有许多相似之处。

如同盖茨一样,佩奇常被以形容和一般人不那么相同,近乎天才而有自闭症倾向。就如同盖茨一样,佩奇成年后的所有时间几乎都投入在他的公司上,迎接接连不断的成功。就如同 盖茨 一样,佩奇 也拥有工程师的灵魂,着迷于降低浪费。

也如同盖茨一样,佩奇野心勃勃。他过去曾经建议谷歌应该聘用 100 万名工程师,也告诉早期的投资方他认为谷歌未来会价值 1000 亿美元,且他指的是 1000 亿美元的年营收,而非总市值。

但也和盖茨一样,佩奇在事业上有盲点。举例来说,谷歌2007年花了 32 亿美元买了陈列广告商 DoubleClick,而通过此交易谷歌也得到了搜索引擎经销商 Performics。但很显然地,谷歌不得不放弃 Performics,因为联邦监管单位决不会让已经是搜索引擎霸主的谷歌再拥有一家搜索行销公司。

过去至少还有担任 CEO 的 Eric Schmidt 可以当缓冲力量,但现在佩奇宣布就任 CEO 之后,已经没有人可以担任刹车角色。

佩奇上任 5 个月以来,已经将谷歌按照他的喜好重组,裁撤了Google Health、手机 App 生产商 Slide,另外推出了与 Facebook 相竞争的社交网站,并斥资 125 亿买下了 Motorola 的手机部门。

现在,反垄断的调查人员也开始密切关注谷歌,就像他们过去关注微软一样。欧洲现在已经展开正式调查,美国联邦贸易委员会也关注着谷歌动态。

随着谷歌持续进行更多大胆的扩张,佩奇将会发现他会被推到他过去从未接受过的聚光灯之下,希望到时候佩奇能够应对的比盖茨更好。

(本文来源:赛迪网 作者:李文涛)

三 : 和LNMP相比 LNMPA是否效率更高?

与InfoQ之前访问过的SegmentFault一样,徳问,是新涌现的一家编程领域的社交问答网站。通过社群智慧,让互联网成为一个能为专业难题提供高效解答的宝库,这就是德问的使命。

最近,尚兴跃在上面提出一个问题:LNMPA和LNMP相比,真的比LNMP更有效率吗?

LNMPA是在Nginx后面加入了Apache。由Apache来处理一些动态请求。

这种方式让架构变得有点复杂,但优点似乎也好理解:因为Apache比Nginx在动态处理和伪URL上更加成熟。

大家觉得,这样架构合适吗?还是多此一举呢?

在百度百科上,对LNMPA是这样说的:

LNMP或LAMP的劣势

Nginx是一个小巧而高效的Linux下的Web服务器软件,与Apache相比,消耗资源更少,支持的并发连接,更高的效率,反向代理功能效率高、静态文件处理快等,但动态页面处理能力不如Apache等老牌软件成熟。单独使用Nginx处理大量动态页面时容易产生频繁的502错误。

Apache是一款老牌的Web服务器软件,在高并发时对队列的处理比FastCGI更成熟,Apache的mod_php效率比php-cgi更高且更稳定、对伪静态支持好,不需要转换、多用户多站点权限等方面有着更好的效果,单独使用Apache处理静态页面时,对内存的占用远远超过Nginx。

LNMPA的优势

LNMPA使用Nginx作为前端服务器,能够更快、更及时地使用更少的系统资源处理静态页面、js、图片等文件,当客户端请求访问动态页面时,由Nginx反向代理给作为后端服务器的Apache处理,Apache处理完再交予Nginx返回给客户端。

采用LNMPA能够更好的解决LNMP架构中由于PHP-FPM方面产生的502错误,同时能够以很简单的方式提供更安全的多用户多站点环境。

对此问题,毛杭军的评论是:

Nginx + php-fpm 比 Apache + mod_php 更省内存。如果服务器内存不够大,用php-fpm是个不错的选择,虽然有出现502,不过可以通过负载均衡或动静态分离来解决。

LNMPA和LNMP,这二种方式用的人都还挺多的,不过我觉得第二种运维更加简单。我们目前采用LNMP(php-fpm)

原百度系统部技术总监邵辉这样看待这个问题:

LNMPA还是LNMP真没这么重要,在某个共识的基础上,随大流就好。如果非要找个原则,那么就用满足需求的最简单的方案。

现在硬件的性能这么好,价格也便宜,就用LAMP又如何?性能的瓶颈大多数情况下都在业务逻辑和数据处理部分,静态页面没有必要过多考虑,除非你产品的核心内容就是图片、视频,如果是这样,把静态内容分离就好了。

InfoQ的读者们,你们对这个问题怎么看?欢迎在评论中留下你们的观点!

文章来源:http://www.infoq.com/cn/news/2012/07/is-LNMPA-better

注:相关网站建设技巧阅读请移步到建站教程频道。

本文标题:将比特率更高的歌曲-A && B || C 的效率比 A ? B : C 更高吗?
本文地址: http://www.61k.com/1106805.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1