标签归档:google

Google所谓的网站访问速度指什么?

google-pagerank

今天看到一篇名为《Google或将网站访问速度纳入PageRank指标》的新闻:

Google品质管理部门的软件工程师马特-卡茨(Matt Cutts)在接受采访时表示:“过去,我们并未把网页载入速度计入搜索引擎排名,但是Google很多员工都认为如果这样做的话,网络会变得更快.而访问速度快的网站显然用户体验更好,因此这些网站应该得到额外的奖励.用户一点都不喜欢非常慢的网站.我认为在2010年,许多网站管理员都将考虑其网站的载入速度.”

业内人士称,Google可能会考虑把网页载入速度纳入搜索引擎排名体系.这将意味提升网站访问速度将成为搜索引擎优化的工作之一.

不少人误解了这篇新闻,认为Matt Cutts所谓的“网站访问速度”就是“网页载入时间”。事实上,网页载入时间是个很抽象的概念,受众多不可测因素:如ISP线路、网页执行时间、服务器的当前负载、服务器带宽等的影响,这一指标很难成为标准性的指标。

继续阅读

Google Docs 增加文件导出功能

Google Docs 已经成为了互联网工作者以及创作、管理、分享文字处理、报告、电子表格文件商务人士的一个重要工具。但是,直到今天为止,如果你想从这里导出数据下载到自己的电脑上时,每次只能导出一个文件。

今天Google宣布 Google Docs 里增加了新功能——“转换、压缩、下载”来解决这个问题。使用这个新功能,可以轻松地下载你所选择的谷歌文件(最大500兆),并且你可以将他们转化为你想要的文件类型,打包成一个zip压缩包,下载并保存到你的电脑上。

google docs 导出文件界面

继续阅读

Google犯下天大错误,5条PHP优化建议遭痛批

首先我承认我有点标题党了,然后:

近日Google 在 Google Code 下的 “Let’s make the web faster” 网站中,发表了一篇名为“PHP performance tips”的文章,介绍了一些php性能优化建议,其中:

  1. 不要随意复制变量
  2. 用单引号表示字符串
  3. 使用echo输出字符串
  4. 不要在echo中使用点号连接符
  5. 使用switch/case代替if/else

这篇文章发表后没多久就立刻遭到了一些PHP社区和个人无情的批驳,他们声称Google错了,错的很彻底,这5条看似有效优化建议其实完全是迷信:

1. 不要随意复制变量

Zend引擎采用了“写时复制”机制,这意味着无论你对变量进行多少次复制,真正的复制动作都仅在变量值改变时才发生。

2. 用单引号表示字符串

无数的基准测试已经证明,使用双引号表示纯字符串并不比使用单引号时慢。有兴趣的朋友也可以重复一下这个测试:

php > $blah=”blah”; $s=microtime(true); for($i=0;$i<100000;$i++) “omgwtf$blah\n”; echo microtime(true)-$s;
0.044615983963013
php > $blah=”blah”; $s=microtime(true); for($i=0;$i<100000;$i++) ‘omgwtf’.$blah.”\n”; echo microtime(true)-$s;
0.042807102203369

3. 使用echo输出字符串

根据php所在服务器环境的不同,某些情况下echo会比print()慢。这里有一篇echo和print()对比的帖子,对echo和print()的速度进行了测试:http://www.learnphponline.com/php-basics/php-echo-vs-print

4. 不要在echo中使用点号连接符

基准测试证明这又是一条与事实完全相反的建议。php引擎处理以点号连接(或者使用双引号)传递给echo的变量实际上是更快的。你可以重复这个测试:

$ php -d implicit_flush=off -r ‘$s=microtime(true); for($i=0;$i<100000;$i++) echo “omgwtf”,”bbq”,”\n”; echo microtime(true)-$s;’ | tail -n 1
1.071463108062710
$ php -d implicit_flush=off -r ‘$s=microtime(true); for($i=0;$i<100000;$i++) echo “omgwtf”.”bbq”.”\n”; echo microtime(true)-$s;’ | tail -n 1
0.44555306434631

5. 使用switch/case代替if/else

这条建议毫无意义。关于是要使用switch/case还是if/else的问题,其实完全是个代码风格问题,而它们的效率相差无几。

一向以技术为长的Google,竟然在技术问题上犯了如此错误,相当不严谨。PHP小组已经督促文章作者重新仔细审查文章,希望能尽快改掉,以正视听。