备选的有
1. 静态文件html+keepalive
2. 静态文件html, 无keepalive
3. ssi(服务器端包含, server side include)
4. perl cgi
5. c cgi
6. mod_perl
7. php
8. perl fcgi
9. c fcgi
10. java
最简单的web环境下, 例如只是个hello world, 在每秒处理请求数上, 性能大致如下(越大越慢):
1. x 1
2. x 1.47
3. x 2.66
4. x 168.25
5. x 46.41
6. x 6.73
7. x 7.48
8. x 5.14
9. x 2.68
10. x 2.2
web环境若是复杂起来, 那就没准了, 不过每种语言在复杂web环境下的表现都会各有特色了.
1) 和 2) 两种的问题是如果静态文件非常多, 例如几百万个, 那你的服务器磁盘就吃不消了, 用squid挡前面加上urlHash能消除一些这样的问题, 但更新的时效性就弱了, 哪些页面的数据对或者不对, 也够你审校的. 3) 也受此类影响
3) ssi的问题是高不成低不就, 作为模板或者作为业务数据插入, 都太不够强. 作为往大段静态文本里插入少量动态数据还有点用处, 不过现在都用ajax load了, 所以这种用法也过时了
4) 和 5) cgi也是个过时的东西了, 用作不会大并发的应用还可以, 例如大文件上传
6) 和 7) 都是既简单又效率还行, 配合架构性的其他组件, 更能发挥快速开发的优点. 6) 在国内不够流行, 但比7)强大多了, 例如server级别的cache/数据库连接池/内嵌的cron等, 正儿八经应该有的配件, 7)都没有.
8) 和 9) 性能够赞吧, 前提是你能玩得转. 8 ) 还好些, 只是国内不够流行, perl又日益没落; 9) 由于没有统一且好用的内存管理, 封装和集成, 非侵入的container/collection, 连个string或stringbuffer都没有, 就要自己自己写一大堆的组件, 能借用的太少了.
10) 看起来很诱惑, 但java的问题就是业务复杂以后, 对象数膨胀的太快, 垃圾回收是被动的, 而且java让大多数人写出很脏很不小心的代码, 复杂应用java慢过php一点也不稀奇.
最后再给个非web环境下(没有webIO和connection的消耗)的各语言的性能比较:
(出处是debian的: http://shootout.alioth.debian.org/)
c++ x1
c x1.09
java6-server x1.79
python x43.26
php x44.72
perl x70.67
ruby x124.21
备注一下, c vs java == 1.7x?, 如果计算复杂度是10x, 那 c vs java == pow(1.7, 10) == 201x. c vs php == 44x?, 如果是写web页面, 字符串拼接或字典遍历方面, 10x的复杂度, 可能也就是个10x(不过php是解释执行, 执行时还要load一堆extension, 打开一堆句柄)
分享到:
相关推荐
- **用户群体需求**:不同的编程语言服务于不同的开发者群体,例如C++倾向于系统级编程,而C#和VB.NET更侧重于应用层开发。 - **语言间的相互影响**:不同语言的设计团队之间通过交流与合作促进彼此的发展,例如...
不同的编程语言适用于不同的领域: - **Web开发**:如果你对网页制作感兴趣,那么HTML、CSS和JavaScript将是你的首选。 - **移动应用开发**:iOS应用开发通常使用Swift或Objective-C;Android应用则主要采用Java或...
由于它们通常不进行优化,对于需要高性能计算或对资源消耗敏感的场景,系统编程语言可能仍然是更好的选择。此外,由于脚本语言的动态性,也可能导致一些难以预料的错误,尤其是在大型项目中,代码的可维护性和一致性...
综上所述,"在原始WebGL2中实现不同复杂度的渲染算法"涵盖的内容广泛,从基础的几何绘制到复杂的光照和纹理效果,再到JavaScript中的图片处理和高性能的着色器编程。学习并掌握这些技术,可以让你在Web 3D图形领域...
Go 语言,也被称为 Golang,是由 Google 设计的一种现代化的编程语言,旨在解决软件构建中的效率、并发性、安全性和可维护性问题。Go 语言以其高效的性能、简洁的语法和内置的并发支持而受到广泛关注,特别适用于...
Java是一种广泛使用的高级编程语言,以其面向对象、平台无关性以及健壮性而闻名。《java 高级语言编程 进阶版》这本书是针对已经有一定Java基础的开发者设计的,旨在帮助他们提升到更高的编程技能水平。以下将详细...
### Go Web编程基础知识点 #### 一、Go语言概述 Go语言是一种新型的编程语言,由Google设计并开源。它具备高效并发、自动垃圾回收、快速编译等特点,旨在简化软件构建过程,提高开发效率。 - **并发能力**:Go...
Ruby语言是一种动态的、面向对象的编程语言,由松本行弘(Yukihiro Matsumoto)在上世纪90年代初设计开发。其在Web开发领域尤其流行,特别是用于构建Web应用程序。Ruby的设计初衷是为了提升开发人员的生产力,使得...
综上所述,评价一种编程语言是否“最好”是一个相对的概念,需要根据具体的应用需求、项目的复杂度、团队的技术栈等因素综合考量。每种语言都有其独特的优点和局限性,选择最适合项目需求的语言才是关键所在。
### 关于Go编程语言的一些常见基础面试题解析 #### 1. 什么是Go编程语言?请简要介绍Go语言的特点和用途。 Go编程语言是一种开源的编程语言,由Google公司的Robert Griesemer、Rob Pike及Ken Thompson设计并在2009...
不同编程语言针对不同架构有不同的优化和实现方式。例如C语言和C++允许程序员直接操作硬件层面的资源,而Java则侧重于提供一个与硬件无关的抽象层。 四、Java与其他编程语言的关系 1. Java与C++的关系 尽管Java和...
编程语言的选择要考虑性能、生态完备性、复杂度和领域相关性。多进程/线程和协程技术在处理并发和计算密集任务时起到关键作用。 性能监控方法包括代码打点、增加性能插件和使用APM(应用程序性能管理)产品。代码...
### Go Web 编程知识点概览 #### 一、Go Web 编程简介与环境配置 **1.1 Go 安装** - **操作系统兼容性**:Go 支持多种操作系统,包括 Windows、Linux 和 macOS。 - **安装过程**:官方提供预编译的二进制包下载,...
这份手册专注于探讨如何使用C++这一传统后端编程语言在Web前端开发中的应用。C++通常被认为是一种底层、高性能的语言,它在游戏开发、图形渲染等领域有着广泛的应用。然而,随着Web技术的发展,C++也逐渐被引入到Web...
可以通过提升服务器硬件性能、优化代码逻辑、使用更高效的编程语言等方式缓解这一问题。 - **数据库访问瓶颈**:随着数据量的增长,数据库查询速度可能会变慢。优化数据库索引、使用缓存技术、合理设计数据库架构等...
VB语言是一种高级编程语言,具有易学易用的特点。VB语言广泛应用于Windows应用程序的开发、数据库应用程序的开发、Web应用程序的开发等领域。 在VB语言编程中,算法设计是非常重要的一步。好的算法设计可以提高程序...
Rust 是一门强大的编程语言,它融合了系统级编程的控制能力和现代编程语言的便利性。通过本书提供的全面介绍,无论是初学者还是经验丰富的程序员都能从中受益。随着 Rust 社区的不断壮大,它在软件开发中的应用也...
易语言是一种面向对象、中文编程的编程语言,其目标是降低编程难度,使计算机技术更易于掌握。在WEBUI窗口的实现中,易语言提供了一套专门用于创建和管理Web用户界面的库和组件。 首先,让我们来了解易语言WEBUI的...
自1991年首次发布以来,Python已经成为最受欢迎的编程语言之一,在Web开发、数据分析、人工智能等多个领域有着广泛的应用。 #### 三、斯巴达Python的核心理念 1. **简洁性**:Python的设计哲学之一就是“简单胜过...