2012年11月26日

未来搜索:基于数据的聚合

摘要: 一旦用户搜索到Knowledge Graph的关键词汇时,页面右侧将会出现一个与该词汇具有特殊相关性的信息框。为用户找出更加准确的信息,作出做全面的总结并提供更有深度相关的信息。把与关键词相关的知识体系系统化地展示给用户。Google 希望藉由 Knowledge Graph 来在普通的字串搜索上叠一层相互之间的关系,协助使用者更快找到所需的资料的同时,也可以更了解使用者需要的是什么,从而往以「知识」为基础的搜索更近一步。 阅读全文

posted @ 2012-11-26 20:40 应无所住而生其心 阅读(166) 评论(0) 推荐(0) 编辑

erlang网络编程的几个性能调优和注意点

摘要: 前些天给echo_server写了个非常简单的连接压力测试程序,代码-module(stress_test).-export([start/0,tests/1]).start()->tests(12345).tests(Port)->io:format("starting~n"),spawn(fun()->test(Port)end),spawn(fun()->test(Port)end),spawn(fun()->test(Port)end),spawn(fun()->test(Port)end).test(Port)->case 阅读全文

posted @ 2012-11-26 17:08 应无所住而生其心 阅读(224) 评论(0) 推荐(0) 编辑

并发编程模型:Thread, Coroutine, Callback ...

摘要: 先总结一下。 线程是最容易编写的并发方式,操作系统也提供了最好的支持;协程可以做到更强的并发能力,但需要实现调度器;回调是开销最小的,它本来不是特别为并发来设计的,它是通用的异步化操作的实现模型。注意线程和协程本身也是使用异步来模拟同步,线程由操作系统来模拟,协程由用户级调度器模拟。模拟的过程是:发起事件请求、挂起当前执行过程(线程或协程)、响应事件请求、恢复挂起的执行过程。回调没有这么复杂,你需要自己把连续的执行过程分解成多步操作。线程就不讨论了,用起来比较简单;协程之前简单研究了一下,切换开销比线程有很大改进,但还是有点大,用作IO事件调度还可以,粒度更小的操作就显得开销过大了,想象一下极 阅读全文

posted @ 2012-11-26 16:50 应无所住而生其心 阅读(449) 评论(0) 推荐(0) 编辑

erlang后台存储选择

摘要: Multiple processes on multiple VMs -> mnesiaMultiple processes on one VM -> ets/detsOne process -> bag/dict/原文:http://blog.csdn.net/anghlq/article/details/6804707 阅读全文

posted @ 2012-11-26 16:25 应无所住而生其心 阅读(124) 评论(0) 推荐(0) 编辑

erlang符号相关基本语法

摘要: ErLang语法约定:大写字母开头的名字(比如Address),表示一个变量,包括参数、局部变量等;小写字母开头的单词(比如ok),表示一个常量,叫做atom(原子的意思),包括常量名、函数名、模块名等。ErLang的注释用%开头。ErLang用下划线“_”表示任意变量,类似于Java的switch语法里面的default选项。参数中没使用到的变量用下杠和首字母大写,如_Sample比较符opDescription==equal to/=not equal to=<less than or equal to<less than>=greater than or equal t 阅读全文

posted @ 2012-11-26 16:23 应无所住而生其心 阅读(448) 评论(0) 推荐(0) 编辑

erlang进程异常

摘要: 1. 耗尽atom因为atom是不会被垃圾回收的,所以如何程序运行时生成太多的atom,(例如在无穷循环里,每次循环都调用几下list_to_atom),atom table会被塞满,然后erlang就当掉了2。进程的耗尽如果你spawn了太多unlink的不会终止的进程,而且这些进程你都不保存它们的Pid,这样你就失去了和这些进程的联系(和引用),这可以看成是进程泄漏,(有点像内存泄漏),随着越来越多的进程泄漏。。。,然后erlang就当掉了3。洪泛消息到一个进程的mailbox不断给某个进程发送消息(而不用等待其回复时),如果接收消息的这个进程的receive语句写得不好,比如模式匹配有漏 阅读全文

posted @ 2012-11-26 16:19 应无所住而生其心 阅读(241) 评论(0) 推荐(0) 编辑

erlang浅谈(4)-OTP

摘要: 1.OTPOTP把分布式应用开发的一些常用场景,进程依赖管理,反应式,状态机,事件驱动模式框架化;另外,提供了一个分布式存储。1.1.框架1.supervisor监控树。a)配置要管理进程们启动参数进程的所处模块,启动函数(也支持匿名函数),启动参数b)定制子进程的重启策略l当前进程挂掉了重启间隔时间l指定时间内重启最大频率l重启时是重启自己||所有的进程||配置时排在当前进程之后2.gen_server反应式框架。自身一个进程。支持同步的call和异步的cast消息投递,也支持Pid!Message的原语方式(这点可以让其跟很多异步接口对接起来)。3.gen_fsm有限状态机(本身没有状态, 阅读全文

posted @ 2012-11-26 16:06 应无所住而生其心 阅读(133) 评论(0) 推荐(0) 编辑

erlang浅谈(3)-Erlang系统特点

摘要: 1.Erlang系统特点Erlang本身内置支持分布式应用里边的,高并发,分布式,代码热替换,容错性。1.1.高并发a)进程i.Erlang的最小执行单元是进程,进程的最大特点是隔离性好,(有自己的独立内存空间,Crash不会影响其他工作单元)。ii.Erlang的进程特点1.协程a)自己控制执行切换b)高效。由于不频繁切换系统上下文(页表等),效率比直接使用OS的高。2.成本极低a)一个Erlang进程,默认开销2K多一点(主要是栈和默认堆)b)对应的一个OS线程,一般栈空间都不少于512Kc)由于是协程,进程切换直接成本极低3.CPU亲和性a)协程,当然可以自己控制ERLANG进程绑定在特 阅读全文

posted @ 2012-11-26 16:02 应无所住而生其心 阅读(336) 评论(0) 推荐(0) 编辑

erlang浅谈(2)--语言特点

摘要: 1.结构:应用--<>模块--<>函数--<>语句--<>子语句--<>表达式--<>子语句..2.函数式编程a)函数式编程,本身不存放状态,对它的影响只有输入参数,而它的影响就是输出函数。b)函数式编程,是分布式应用中,高并发,代码热替换的基石c)Erlang应用就是由这些函数构成的,它的重要理念,everythingisfunction,所有的函数都有返回值。(相当于默认最后一句就是return的值)3.变量a)Erlang是面向函数式编程的,进程本身没有全局变量。b)在函数上下文中,可有局部变量,所有的局部变量都是r 阅读全文

posted @ 2012-11-26 15:42 应无所住而生其心 阅读(112) 评论(0) 推荐(0) 编辑

erlang浅谈(1)-概述

摘要: Erlang,EricssonLanguage。它是一种DSL,及领域专用语言。它所面对的领域是高并发和分布式领域。它出现于1987年,1996启动了它的一个非常重要开发平台--OTP项目,重新局部炒作于当下。OTP,开放电信平台。它把分布式开发的一些常用场景模式框架化;另外,提供了一个分布式存储。每个东西的流行都有他自己特点,下面我们将分析它的一些特点,它针对分布式应用做的很多设计和总结都是相当值得借鉴的。原文:http://blog.csdn.net/anghlq/article/details/6862835 阅读全文

posted @ 2012-11-26 15:29 应无所住而生其心 阅读(75) 评论(0) 推荐(0) 编辑

Erlang与java的内存架构比较

摘要: Erlang与java的内存架构比较翻译自http://www.javacodegeeks.com/2011/04/erlang-vs-java-memory-architecture.html转载请注明出处,谢谢了。我读了一篇非常非常有趣的文章(JesperWilhelmsson的一篇论文),是关于Erlang虚拟机(Erlang VM)内存管理策略的。我相信对比一下Erlang和java的虚拟机内存管理策略,一定很有意思。先给从来没有听说过Erlang的同学做个简短的介绍。 Erlang是一门函数语言,通过异步消息传递(asynchronous message passing)来处理并发, 阅读全文

posted @ 2012-11-26 15:24 应无所住而生其心 阅读(578) 评论(0) 推荐(0) 编辑

导航