阅读更多

5顶
3踩

互联网

转载新闻 OpenDNS vs Google DNS 解析速度测试

2009-12-08 11:25 by 副主编 just_cool 评论(3) 有12390人浏览

 

Google不久前刚刚发布了自己的DNS为将来Chrome OS做准备,两个DNS服务器的IP地址分别是8.8.8.8和8.8.4.4。我在张大嘴巴感叹米国IP资源如此丰富和牛鼻之后,毅然使用了这两个 DNS作为我的电脑的首选DNS服务器。我之前的DNS使用的是OpenDNS,IP地址分别是208.67.220.220和 208.67.222.222。本来觉得OpenDNS还算好记,这下Google大叔的DNS一出,我立马把知道啥才叫好记的IP地址了。

 

Google DNS真的值得启用吗?或者说真的值得作为首选DNS服务器吗?我说了都算空口无凭,现在提供一个小工具检测DNS的效果,让数据说话吧。俗语说,无图无真相,先上图:


 
软件名称DNS Benchmark,175k的小软件,图中圆圈1、2、3是操作顺序。运行软件后会自动载入操作系统设定的DNS地址和软件提供的一些莫名其妙的其他 IP地址。我自己用了5个DNS服务器:路由器、OpenDNS和Google DNS。点击运行之后,软件开始自动检测所有DNS的连接情况。进度条走完,就可以查看结论了。有一个很长很详细的结论,提供了很好的DNS使用建议。这些建议和结论包括:

1、系统必须有多个容易的DNS服务器。我的是5个,checked
2、所有的DNS都是存在的而且可以连接的。没问题,checked
3、你的系统的DNS服务器的顺序是最好的吗?不是,正确的顺序应该是…
4、你的DNS服务器比其他那些开放的DNS服务器都要快吗?是的,checked。(看图其实不是)
5、所有软件内的这些DNS都可用吗?不是。(图里看不见,有个DNS是错误的)
6、有些DNS解析除了错误的地址。没有。
7、你的DNS服务器响应了所有请求了吗?是的,checked

看完结论,发现就是第3个有用,正确的顺序是:路由器 – OpenDNS – Google DNS。抛开路由器的愚蠢设置,也就是说,应该是OpenDNS解析速度好于Google DNS。 实际使用起来是不是这样的呢?是的,我自己check一下。我改为Google DNS作为首选DNS的时候,我上Gmail都问我说加载很慢,是否需要加载简单Gmail界面,改回OpenDNS后,一切恢复正常。看来这个时候,盲目的跟 随Google是错误的~

软件下载地址:http://obugs.net/DNSBench.exe

ps: 我自己的网络不好说明什么问题吗?看看某外国哥们儿给出的测试结果:

My Comcast DNS server (Comcast, San Jose)
Cached: 13ms
Uncached: 57ms
DotCom Lookup: 41ms

OpenDNS
Cached: 17ms
Uncached: 73ms
DotCom Lookup: 118ms

GoogleDNS
Cached: 39ms
Uncached: 111ms
DotCom Lookup: 165ms

来自: orangebugs.net
5
3
评论 共 3 条 请登录后发表评论
3 楼 系统程序 2009-12-10 09:58
天朝很多DNS是直接被河蟹了的,无论你怎样改,其实都是天朝GOV给你做的解析,联不通的网络我没试过,点心的很多都是
2 楼 flysheet 2009-12-09 16:08
不制造点噱头,谁来关注啊,更何况是Google
1 楼 qujinlong123 2009-12-08 12:47
我自己check一下。我改为Google DNS作为首选DNS的时候,我上Gmail都问我说加载很慢,是否需要加载简单Gmail界面,改回OpenDNS后,一切恢复正常。

---- 真是晕……,这样的测试……

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • JVM:基本原理之异常的捕获

    上述的复制finally代码块的内容是针对字节码而言,针对下图的异常执行路径,编译器会生成一个或多个异常表的条目,监控整个try catch代码块,并捕获所有的异常种类(在 javap 中以 any 指代),该异常条目的target将指向出口处复制的异常代码,并且,在这个 finally 代码块的最后,Java 编译器会重新抛出所捕获的异常。编译生成的字节码文件中,每个方法都附带一张异常表,异常表每一个条目代表一个异常处理器,并且由 from 指针、to 指针、target 指针以及所捕获的异常类型构成。

  • 错误处理与异常捕获:try-catch语句和异常处理机制

    当异常被抛出时,会从当前代码块开始,按照异常处理器的顺序查找匹配的处理器,直到找到合适的处理器或异常传播到上层代码块。当异常在一个代码块中抛出时,如果没有合适的异常处理器来捕获异常,异常会传播到上层的代码块,直到找到匹配的异常处理器或程序终止。当异常发生时,程序会中断当前的执行流程,并查找匹配的异常处理器来处理异常。抛出异常后,程序会立即中断当前的执行流程,并寻找匹配的异常处理器来处理异常。- 异常处理层次结构:可以构建异常处理层次结构,从粗粒度到细粒度处理异常,以便更好地控制和管理异常。

  • 探究Java中异常的捕获及处理机制

    程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。Java提供了优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。 Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。 Java异常机制用到的几个关键.

  • 【Java 异常处理】异常处理机制,内置异常类,如何捕获异常

    Java的异常处理

  • 异常概述及其抛出与捕获机制

    介绍异常的定义和类层次结构,并给出抛出异常和捕获异常的方式。

  • Java 开发(五):Java 异常处理机制:如何优雅地捕获与处理错误

    异常是程序在运行期间出现的不期望的事件或错误。Java 使用异常对象(Exception)来封装错误信息,并通过异常处理机制来确保程序能够适当地响应和恢复。若未处理异常,程序将崩溃或终止。在实际项目中,可以根据业务逻辑需求创建自定义异常,以便于更细致的错误分类和捕获。自定义异常类通常继承Exception或。示例// 使用自定义异常throw new InvalidUserInputException("输入不能为空!");精准捕获:尽量避免使用泛型Exception捕获,确保捕获具体的异常类型。

  • Java进阶——异常处理和捕捉

    异常:是指程序在运行过程中出现的非正常情况异常处理:异常处理是一种技术,用于处理这种异常情况//出现异常后 程序立刻结束//一旦出现异常,程序立刻结束,“end”内容将不会输出如果企业自己的某种问题,想通过异常来表示,那就需要自己来定义异常类了。**需求:写一个saveAge(int age)方法,在方法中对参数age进行判断,如果age<0或者>=150就认为年龄不合法,如果年龄不合法,就给调用者抛出一个年龄非法异常。

  • Java的“异常”

    2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

  • java 异常捕捉机制

    java 异常捕捉机制 一、相关知识学习   异常是指程序在执行过程中出现的意外事件,异常通常会使得程序的正常流程被打断。 1、 Java的异常处理方法 Java的异常捕捉和处理的语法格式: try { //可能抛出异常的语句模块 } catch(异常类型1) { //处理异常类型1的语句 } …… catch(异常类型n) { //处理异常类型n的语句 } finally { //无论是否抛出...

  • Java异常捕捉机制

    Java异常捕捉机制 1、简介 异常指的是程序运行时出现的非正常情况,Java中的异常捕捉最经常使用到的是try和catch两个代码块。本博客讲解的程序是工程训练基本任务1.4中的问题,该任务我是在4月份初学Java时完成的,故定会有许多不足,若有不足之处,恳请大家指出。 2、基本任务和代码 (1)任务1 1)任务内容 完成c=a/b 的计算并输出c的结果,其中用户可以通过键盘输入...

  • 异常捕获机制

    异常捕获机制书类书店类异常类价格异常(运行时异常)库存异常(非运行时异常)主函数总结 一般在程序运行的过程中,我们难免会遇到各种问题,一般分为运行时异常和非运行时异常,举个简单的例子,一个饭店的桌子就只能四个人吃饭,突然一下来了十个人怎么办?这就是异常,我们需要的就是将把这些人做出处理,桌子太小了,需要一个大一点的桌子。当然这是个简单的例子,具体的还是需要在面对各种问题时进行不同的处理。那么下面我...

  • java中异常处理语句错误用法的是_Java异常处理语句及解析

    Java异常处理语句及解析一、选择题1.java中用来抛出异常的关键字是 (C)A、tryB、catchC、throw D、finally2.关于异常,下列说法正确的是 (A)A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都丌对3.(A)类是所有异常类的父类。A、Throwable B、ErrorC、ExceptionD、AWTError4...

  • Java的异常处理练习题

    一、选择题 1、java中用来抛出异常的关键字是( ) A.try      B.catch    C.throw          D.finally   2、关于异常,下列说法正确的是( ) A. 异常是一种对象        B.一旦程序运行,异常将被创建 C.为了保证程序运行速度,要尽量避免异常控制     D.以上说法都不对   3、()类是所有异常类的父类。 A.Th

  • 【JAVA】异常捕捉机制(1)—异常(Exception)的概念与分类

    一、前言 前面我们说到有关于API的学习,但是软件程序在运行过程中并不是会非常完美的,比如当我们写某个模块,用户的输入不一定符合要求,程序可能不存在或者是文件格式不对等等。所以接下来我们将要学习java的异常捕捉机制。 本次学习的任务要求:完成一个 java application应用程序,完成c=a/b 的计算并输出c的结果,可以为a和b在程序中赋初值、或者接收用户通过键盘输入a和b的数值文本...

  • java 异常捕捉机制 (1.4)

    java 异常捕捉机制 (1.4) 编译语言 : Java 编译版本 :JDK 1.3 至 1.8 任务目标 : 学习JDK的异常捕捉机制 1 异常概述 异常是一个在程序执行期间发生的事件,其中断正在执行的程序的正常指令流。在程序中,错误可能产生于程序员没有预料到的各种情况,或者超出程序员可控范围的环境因素,如用户的坏数据,试图打开一个根本不存在的文件,还有存在空指针,...

  • 异常处理机制

    异常处理机制 抛出异常 异常的抛出 Java运行时系统引发的异常 根据需要人工创建并抛出 人工抛出异常 语法格式:throw  异常类对象;//被抛出的必须是Throwable或其子类的对象 例如:IOException e = new IOException();            throw e;//程序执行throw语句后立即终止,然后在包含它的所有try块中从里向外寻找

  • Java异常的捕获与处理

    一、异常是什么? 异常的定义:异常是导致一个程序终端的指令流,一旦出现之后程序就立即退出。 例如:除数为0 int a = 10; int b = 0; System.out.println(a + "/" + b + "=" + a/b); System.out.println("运算结束");程序运行结果:Exception i

  • Java 异常的捕获与处理详解(一)

    一、异常的产生异常是程序之中导致程序中断的一种指令流,异常一旦出现并且没有进行合理处理的话,那么程序就将中断执行。 下面,通过两个程序来进行异常产生问题的对比。 (1)不产生异常的程序:public class Test { public static void main(String args[]) { System.out.println("1、除法计算开始。");

Global site tag (gtag.js) - Google Analytics