|
2
|
| user193116 · 技术社区 · 16 年前 |
|
|
1
5
我去看看 http://www.highscalability.com 并查看如何将应用程序扩展到越来越大的负载的案例研究。特别是在那里搜索Brad Fitzpatrick关于他如何缩放LiveJournal和Danga Interactive的描述(例如, this 2005 presentation ) 您对数据库是第一个瓶颈,然后是Web服务器的直觉可能是正确的,但当然您需要度量。 扩展站点的主要方法包括集群、缓存和数据库分片等。编程语言的选择是次要的,通常会影响每个框的原始性能。见亨德森 Building Scalable Web Sites 和Schlossnagle的 Scalable Internet Architectures 关于这个领域的其他想法和背景。 尽管如此,功能性语言可能有助于提高整体的可伸缩性。 Twitter used Scala 以提高后端性能。Scala是一种结合面向对象和功能样式的JVM语言,支持参与者并发模型,并且运行速度接近Java(Scala的创建者Martin Odersky,也编写了当前Sun Java编译器)。因此,如果您遇到并发瓶颈,您可能希望在Java中撒一点Scala。 |
|
|
2
12
两个半答案: 你有用户吗? 你确定你知道瓶颈在哪里吗? 像这样向外扩展会引起与小应用程序中的性能非常不同的关注。在你开始先发制人地修理东西之前,确保你真的知道什么是坏的。无论如何,应用程序的体系结构可能比用什么构建它更重要。 也就是说,如果你想这样做的话,Erlang或Haskell都可以工作,但可能不会对你的要求产生巨大的影响。有很多 其他 虽然他们喜欢Java的原因,但是… |
|
|
3
-4
当瓶颈已经定义为不与代码相关时,选择一种不同的语言将大大加快应用程序的编译速度,例如Java。大多数函数语言比Java具有更多的开销,因此如果您已经熟悉Java,就必须有一个令人信服的理由来切换到一个。 |