当前位置: 首页 > news >正文

邢台网站建设包括哪些松阳县建设局网站公示

邢台网站建设包括哪些,松阳县建设局网站公示,深圳建筑公司排行榜,大学生网页设计大赛作品erlang 架构原理我读了一篇关于Erlang VM的内存管理策略的非常非常有趣的文章。 它是Jesper Wilhelmsson撰写的论文 #xff0c;我认为讨论Erlang的内存设置和Oracle的Java VM之间的差异可能会很好。 作为对从未听说过Erlang的人们的一个简短的介绍; 它是一种功能语言#xf… erlang 架构原理 我读了一篇关于Erlang VM的内存管理策略的非常非常有趣的文章。 它是Jesper Wilhelmsson撰写的论文 我认为讨论Erlang的内存设置和Oracle的Java VM之间的差异可能会很好。 作为对从未听说过Erlang的人们的一个简短的介绍; 它是一种功能语言使用异步消息传递作为并发的基础。 消息传递使用复制语义从而可以在不止一台机器上运行的多个Erlang VM上进行分发这实际上对程序员是透明的。 从某种意义上来说 Erlang和Java都是相似的它们都使用虚拟机将硬件抽象为可移植层。 两种语言都使用与机器无关的字节码。 两种运行时系统都依赖垃圾回收来释放程序员进行内存管理的能力。 Erlang中的线程开销非常低。 我相信 Erlang中线程的内存要求约为512字节。 在Java中线程通常需要大约512 KB大约是1000倍。 对于程序员而言结果是不必创建线程来异步执行某些工作而不必坐下来思考。 典型的Erlang系统具有成千上万的线程。 像我们在Java中那样线程池和执行器没有麻烦。 从我所涉猎的内容来看我发现Erlang在功能性语言和允许您编写实际应用程序的语言之间达成了令人愉快的折衷。 我知道我会为此感到迟疑强大的分布式错误处理令人惊喜编写任何类型的网络服务器实际上都很容易。 Web服务器的状态机方法使回滚错误变得完全自然。 但是这篇文章与Erlang的编程模型无关。 这是关于Erlang VM处理内存的方式。 当前的Java虚拟机使用Erlang程序员称为共享堆拓扑的东西。 所有线程都使用一个大堆。 大多数内存分配在该堆上。 除了堆之外JVM还使用一些专用数据区域例如代码缓存和永久生成。 这些也在所有线程之间共享。 相比之下 Erlang使用私有堆拓扑。 每个线程都有自己的微小堆该堆包含该线程使用的所有数据以及该线程的堆栈。 线程的所有数据都在该本地堆上。 创建线程时保留它。 当线程死亡时整个堆将简单地返回到空闲内存池。 除了专用堆之外所有线程都共享对所谓的二进制堆和消息堆的访问。 这些是专门的堆。 二进制堆用于分配大块的任意数据这些数据很可能在线程之间共享。 例如文件输入或网络缓冲区。 消息堆是消息中使用的数据的堆。 消息也在进程之间共享。 通过将指针从发送线程复制到接收线程可以在线程之间传递消息。 消息的数据存储在消息堆上。 Erlang内存模型给我留下了深刻的印象。 它比Java的单堆模型具有更大的可扩展性。 语言语义和内存模型完美匹配。 例如; 堆是线程专有的简单事实使线程可以对自己的数据进行各种形式的锁检查。 再加上没有破坏性写入的事实突然间也不需要对共享数据进行锁定检查。 最新版本的Erlang VM通过拥有多个调度程序进一步迈出了又一步。 确切地说每个物理处理器一个调度程序。 这消除了另一类要检查的锁。 仅在无聊的调度程序时它才需要出去收集锁并从另一个调度程序中获取一些进程。 在Java中我们还有很多东西要学习。 就是说我们在Java中有一些不错的东西我错过了使用大型Erlang系统的情况。 当线程累积大量数据时 Erlang VM将重新分配并增加堆。 但是重新分配算法导致堆大小快速增长。 在高负载下我们已经看到Erlang VM在几分钟之内吞噬了16GB的RAM。 每个发行版都必须经过仔细的负载测试以查看其内存需求是否仍然合理。 Erlang VM中没有任何机制可以抑制内存的增长。 VM会愉快地分配过多的内存以至于系统需要进行交换或者虚拟内存已用完。 这些可能会导致机器甚至无法响应KVM控制台访问。 过去我们必须对机器重新通电才能重新访问它们。 基于队列的编程模型使Erlang为其编写代码变得非常有趣这也是生产中的致命弱点。 Erlang中的每个队列都是无界的。 VM不会引发异常或限制队列中的消息数。 有时进程会由于错误而停止处理或者进程无法跟上发送给它的消息流的速度。 在这种情况下 Erlang将只允许该进程的队列增加直到VM被杀死或计算机被锁定以先到者为准。 这意味着当您在生产环境中运行大型Erlang VM时您需要进行OS级别的检查如果内存使用过多的话这些检查将杀死进程。 对于运行大型Erlang VM的计算机必须具有计算机的远程控制权或远程访问卡。 总之对于每天的性能我相信私有堆内存模型是Erlang盒子中非常强大的工具。 它将所有类型的锁定机制都排除在运行时系统之外这意味着在相同的目的下它将比Java更好地扩展。 当系统被洪水或DDoSed攻击时Java对内存的严格限制将节省您的培根。 最后的想法 Erlang的VM有一个命令行开关可以将其从使用私有堆拓扑切换到使用共享堆拓扑。 我喜欢Erlang和Java。 它们之所以难以比较是因为它们与开发人员的共同点很少。 通常我会在大多数系统上使用Java。 工具支持更好可用库的数量惊人。 如果我有一个面向流的消息传递系统我会选择Erlang 。 那时 Erlang编程模型才真正发光。 参考文献 Java监视器的 JCG合作伙伴Kees Jan Koster提供的Erlang内存架构与Java内存架构 编码愉快 不要忘记分享 拜伦 相关文章 Java最佳实践系列 正确记录应用程序的10个技巧 每个程序员都应该知道的事情 生存在荒野西部开发过程中的9条提示 软件设计法则 Java Fork / Join进行并行编程 翻译自: https://www.javacodegeeks.com/2011/04/erlang-vs-java-memory-architecture.htmlerlang 架构原理
http://wiki.neutronadmin.com/news/107693/

相关文章:

  • 大连网站建设报价优质商家口腔网站建设
  • 上海专业的网站永州城乡建设网站
  • 国外网站视频播放器怎么做网站的动效
  • 福州网站大全免费炫酷企业网站源码
  • 中小学网站建设论文上海工商网站
  • 在线做带字头像的网站谷歌优化工具
  • 长沙网站公司网站建设58同城找房子租房
  • 拟定建设方案物流网站免费网站统计
  • 昆明做一个公司网站多少费用云服务器可以做多个网站
  • 桂林哪里做网站网站建设除凡科外还有哪些
  • 如何知道一个网站做的什么推广商品网站建设及推广策划书
  • 做网站用什么软件ps字体推广的方式
  • 百度指数查询官网入口网站优化seo推广服务
  • 东营外贸型网站设计凡科建站源码
  • 网络网站开发培训局网站建设工作总结
  • 泉州市住房和城乡建设网站道滘仿做网站
  • 晋城市网站建设管理人员软件定制网
  • 江苏中粟建设工程有限公司网站网站怎么做vga头
  • 网站商城方案电子商务网站建设选修课
  • 商务网站的建设与维护西安黄页网
  • 企业开办网站网站后台 批量上传
  • 门户型网站建设方案wordpress调用微云视频
  • 企业网站建设哪家服务好h5网站建设机构
  • 网站建设我要自学网广州 做网站
  • 网站开发怎么使用sharepoint长沙在线注册公司
  • 西安微信公众号制作正规网站优化推广
  • 企业官网建站在线html网页编辑器
  • 英文淘宝网站建设wordpress 内容模板下载失败
  • 免费自助建网站软件网站建设公司百家号
  • 网站后台登陆图片wordpress获取文章发布时间