`
hanxuebo
  • 浏览: 17710 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA是否最适合企业应用开发

阅读更多
当我刚入行做程序员的时候,那是在01-02年,铺天盖地的都是java,j2ee,公司也使用java作为开发语言,我也就随大流加入javaer阵营。
从那时起,各种java的术语,框架,模式铺天盖地。被动接受后也理所当然的认为java就是最适合企业开发的东西。
后来一个项目使用了oracle,weblogic,吞吐量单JVM也就80req/s,还经常终止服务,挺好的服务器,业务也不复杂啊。因为并发不能满足,又扩容了设备。那时就有个想法,试试别的架构。后来把相同的逻辑在LAMP上实现了一遍,第一次写php,没什么经验,第一次配mysql也没什么经验,但结果在同一台服务器上可以做到500req/s。这件事就让我对java产生了一些疑问。
从以下几点讨论
1、开发效率:如果和C++比,java的开发效率是要好一些的,但是和php不在一个水平线上。
2、易维护性:java语言本身没有太多可以出格的用法,C++和php都可能写成一些极难理解的代码(python/ruby也一样),但是C++11和php5以后,代码的规范性还是比较好保证的。
3、运行效率和可靠性:这个要分开说
在web层上,java的thread是pthread,应用服务器一般要起线程来维护请求,nio connector是不适合thread local的框架的。php使用nginx+fcgi,是按照cpu核心数启用进程的方式,不用担心线程安全问题。java共享heap,在java.util.concurrent出现之前,容器类的线程安全很低效(严重感谢Doug Lea,他还是collections的作者),java的类库都是java写的,很多性能n并不好。php是的哲学是在请求时获得资源,请求结束释放,同时类库都是c/c++完成的,简单高效。在php中短连接性能很好,在java联个什么都需要连接池。
在有复杂运算的场景下,php的性能确实会是一个很大问题,而java性能会好很多,但是java并不能有效管理大内存(基于 mmap的direct buffer也还不理想),同时fullgc的问题对于响应及时性要求高的系统根本不能用。这部分是c/c++的天下。

所以我的理想框架顺序是
php
php+thrift+java
php+thrift+c++

总之,个人认为java是大厂联合推销软硬件的阴谋。嘿嘿
分享到:
评论

相关推荐

    Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码.zip

    Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用...

    Java EE企业级应用开发教程(SSM)源码.zip

    Java EE企业级应用开发教程(SSM)源码是一个涵盖了使用Java开发企业级应用程序的实践示例。SSM是Spring、Spring MVC和MyBatis这三大框架的简称,它们是Java EE开发中常用的技术栈。这个教程源码将帮助开发者深入...

    基于Java企业微信的开源应用开发框架&引擎.zip

    【标题】: "基于Java企业微信的开源应用开发框架&引擎" 这个标题表明我们讨论的是一个专注于企业微信集成的开源框架,它完全用Java语言编写。这个框架的主要目的是简化和加速开发者在企业微信平台上的应用开发工作...

    Java EE企业级应用开发(SSM).7z

    Java EE企业级应用开发主要关注的是构建可扩展、高可用性的服务器端应用程序。"SSM"是Spring、Spring MVC和MyBatis三个框架的缩写,它们是Java EE开发中的重要组成部分,尤其在现代企业级应用中广泛使用。本教程将...

    Java EE企业级应用开发教程 Spring+Spring MVC+MyBatis 第2版 Jav 第2版源码

    《Java EE企业级应用开发教程》第二版,结合Spring、Spring MVC和MyBatis三大框架,为读者提供了全面深入的Java后端开发学习路径。这本书的源码资源旨在帮助开发者通过实践来理解并掌握企业级应用开发的核心技术。 ...

    Java EE企业级应用开发教程(Spring Spring MVC MyBatis)(黑马程序员编著)

    《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》是一本专注于Java企业级应用开发的专业教程,由黑马程序员编著。本书的核心在于深入浅出地介绍如何使用Java EE技术栈,特别是Spring、Spring MVC和...

    java企业级应用开发

    Java企业级应用开发是构建大型、可扩展且高效软件系统的基石,主要集中在Java Web开发技术上。本课程涵盖了从环境搭建到实现复杂业务逻辑的全过程,旨在培养开发者在实际项目中的综合技能。 首先,第1章“Java企业...

    Java企业级应用程序开发指南

    《Java企业级应用程序开发指南》是一本面向Java开发者的重要参考资料,尤其适合那些希望在企业环境中构建大型、可扩展系统的人员。这本书深入浅出地讲解了Java在企业级应用中的核心概念和技术,通过丰富的实例帮助...

    《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》.zip

    《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》是一本专注于Java后端开发的实战型教材,特别适合于对Java EE感兴趣并希望深入学习的企业级开发者。本书结合了Spring框架、Spring MVC以及MyBatis这三大...

    《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》配套资源.zip

    《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》是一本深入讲解如何使用Java EE技术栈进行企业级应用开发的教材。它主要聚焦于Spring框架、Spring MVC以及MyBatis这三大核心组件,它们是现代Java Web...

    Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-源代码

    Java EE企业级应用开发是构建大型、复杂系统的关键技术,其中Spring、Spring MVC和MyBatis是核心组件,常被组合使用,形成了SSM(Spring + Spring MVC + MyBatis)框架栈。这个教程源代码提供了深入理解这些技术的...

    高教类课件:Java EE 6企业级应用开发教程

    Java EE 6企业级应用开发教程是一门针对高等教育领域的课程,旨在教授学生如何利用Java Enterprise Edition(Java EE)6平台进行高效、可扩展且健壮的企业级应用开发。Java EE 6是Java平台上用于构建分布式、多层...

    Java面向对象应用程序开发

    此外,Spring框架是Java企业级应用开发的首选,它提供了依赖注入、AOP(面向切面编程)以及丰富的模块,如数据访问、Web服务等。 最后,测试是软件开发的重要组成部分。JUnit是Java的单元测试框架,它允许我们编写...

    Java EE企业级应用开发(笔试).zip

    Java EE,全称为Java Platform, Enterprise Edition,是Java平台针对企业级应用开发的标准和框架集合。这个平台由Sun Microsystems(现已被Oracle收购)发起,并由Java社区进程(JCP)进行管理和更新。Java EE旨在...

    java 开发 J2EE企业级应用

    Java J2EE(Java 2 Platform, Enterprise Edition)是Java平台的一个版本,专门设计用于构建...《用 J2EE 和 Uml 開發 Java企業級應用程序》这本书可能涵盖了这些内容,可以帮助读者深入理解和掌握J2EE开发的各个方面。

    轻量级Java EE企业应用开发实战随书光盘\04.part3.rar

    轻量级Java EE企业应用开发实战\04.part3.rar

    java企业级应用开发指南电子书

    ### Java企业级应用开发指南知识点概述 #### 一、引言 随着Java技术的发展与成熟,它已经成为构建大型企业级应用程序的重要平台之一。本书《Java企业级应用开发指南》为开发者提供了一个全面深入地了解如何利用Java...

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》_源代码.zip

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》是一本深入探讨Java企业级应用程序开发的书籍,源代码包含多个章节的实例,旨在帮助读者理解和掌握使用Spring、Spring MVC和MyBatis框架进行实际开发的关键...

    java EE 7 & HTML5 应用开发——构建和部署同时支持桌面和移动设备的动态高性能企业级应用.rar

    Java EE 7与HTML5是现代企业级应用开发中的关键技术,它们的结合使得开发者能够构建出既适应桌面环境又能无缝支持移动设备的高性能应用程序。本文将深入探讨这两个技术领域,以及如何利用它们来创建动态且高效的企业...

Global site tag (gtag.js) - Google Analytics