免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: luoleicn
打印 上一主题 下一主题

[算法] 求自己实现的非堵塞的DNS解析实现 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-03-26 15:30 |只看该作者
这种问题的实质就是 dns 解析需要大量时间, 对于cpu 而言 这些时间应该做别的事情

异步也好 多线也好都可以,  本质要看dns 所花时间的代价
当然异步 应该是最快的,但是多线程明显好写。 问题是如果dns 所花时间很大, 多线明显就浪费

dns 解析是 做爬虫程序要过的一道关。

论坛徽章:
0
22 [报告]
发表于 2009-03-26 15:48 |只看该作者
原帖由 pagx 于 2009-3-26 11:37 发表
> 迟迟不返回
异步同样要面临相同的问题, 只是迟早的问题。
> 基于线程 与 基于事件的方式
早已有定论,不需要再作讨论。线程不被推崇仅仅是现实性能而不是设计上的问题。就像微内核不流行差不多类似。
>  ...



说实话, 从研究的角度来说, 你的这种反驳显得很没底气?
啥叫 迟早的问题?  同样的时间段内 一边等待我的线程可以去其他的事情
扯啥微内核.... 呵呵.... 知道OS X 是啥内核? mach 就是第一代微内核 不流行? 说实话我觉得mach内核比linux内核设计的更好
更实用.... windows的内核还一直在抄别人的.... 多余的我就不说了 大家都多学习学习....

[ 本帖最后由 redor 于 2009-3-26 15:51 编辑 ]

论坛徽章:
0
23 [报告]
发表于 2009-03-26 19:06 |只看该作者
你也没认真比较过微内核与单内核。纯粹的为内核效率是比较低的(不是特别低,只是在相同的条件下比不上单内核)。具体的你自己查吧。真正的实用的纯粹微内核可以说没有。windows/OS X严格来说是混合内核, 关于这个的讨论可以参见当年linux与minix的争论。当然了linux 0.1 跟 minix 3 没有可比性。mach我个人没认为他是一个流行的系统。微内核在设计上,理论上很理想,但是现实.....总之是牺牲部分性能换取良好设计。单内核于微内核的区别是 但内核的驱动是一组函数调用,微内核驱动是一个个线程/进程。 跟线程/异步是很像的。异步面临相同的问题,我所指的是假如你不去回收没有响应的请求,迟早有一天资源耗尽, 而多线程同样是可以回收。我知道你可以去处理其他事情,但是前提是你的线程要有事情可干。在高效的线程实现下,多线程不比异步的差,相关文章你不会不看过。

[ 本帖最后由 pagx 于 2009-3-26 21:11 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
24 [报告]
发表于 2009-03-26 19:43 |只看该作者
已经由DNS上升到内核了

论坛徽章:
0
25 [报告]
发表于 2009-03-27 17:09 |只看该作者
原帖由 pagx 于 2009-3-26 19:06 发表
你也没认真比较过微内核与单内核。纯粹的为内核效率是比较低的(不是特别低,只是在相同的条件下比不上单内核)。具体的你自己查吧。真正的实用的纯粹微内核可以说没有。windows/OS X严格来说是混合内核, 关于这 ...




我实在受不了你这中不客观的说法, OS X的基本内核可是mach BSD子系统只是在MACH基础之上实现的 子系统, 微内核效率跟 普通内核的区别不是效率
而是实现的架构, 我承认很多东西放内核是效率高一些 但是微内核的好处就是内核的简单 可扩展性更好。
其实你说的为内核的性能问题早就已经解决 MINIX属于效率比较低的微内核
window最新的内核都是趋向微内核架构  

线程和异步的问题我还是建议你好好看看再说, 我不认为你的线程实现方式好在哪? 异步这个概念只是相对于程序本身来说的, 使用者本身来说的。
你有兴趣可以试试学习学习libevent之类的东西 然后我们再讨论。。。
如果你做过高并发程序你就不会跟我扯线程这个东西了

论坛徽章:
0
26 [报告]
发表于 2009-03-28 22:35 |只看该作者
必须承认异步在性能上占优势。线程实现方式的好处, 这篇文章里面说得很清楚: http://www.usenix.org/events/hotos03/tech/vonbehren.html 我很赞同其中的观点: 线程更利于阅读。当然了,不排除你对异步非常熟悉,对代码阅读方面区别完全没有感觉。

论坛徽章:
0
27 [报告]
发表于 2009-03-29 00:30 |只看该作者
原帖由 pagx 于 2009-3-28 22:35 发表
必须承认异步在性能上占优势。线程实现方式的好处, 这篇文章里面说得很清楚: http://www.usenix.org/events/hotos03/tech/vonbehren.html 我很赞同其中的观点: 线程更利于阅读。当然了,不排除你对异步非常熟 ...



那位兄弟说的也就是一个select函数而已, 别被唬到啊
在CPU核心数越来越增多的今天, 你的线程方式会派上用场的.

论坛徽章:
0
28 [报告]
发表于 2009-03-30 12:58 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
29 [报告]
发表于 2009-03-30 16:13 |只看该作者
原帖由 luoleicn 于 2009-3-30 12:58 发表
哪位大侠给个adns的例子,不胜感激啊



larbin里有现成的实现去找来看看。。。。 我没怎么用过adns 因为我的通信体系里不支持第三方的通信组件

论坛徽章:
0
30 [报告]
发表于 2009-03-30 16:23 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP