各大主流语言web框架代码行数对比

编程语言vs代码量vs运行速度 场景需求:用不同的编程语言完成同一个任务 语言 代码量 运行速度 可应用的场景 C、C++ 1000行 1s 写操作系统 写3D游戏 嵌入式开发 java 100行 2s 写手机应用 网站开发 python 20行 10s 系统运维的日常工作 阅读详情

Go

640?wx_fmt=other

  1. gin 4762

  2. echo 4903

  3. iris 27854 肿

  4. buffalo 9391


Node

640?wx_fmt=other

  1. koa 1667

  2. express 4051

  3. sails 17100 肿


Python

640?wx_fmt=other

  1. tornado 21666

  2. werkzeug 20801

  3. flask 7489

  4. bottle 3756

  5. web.py 10830

  6. django 119701 泰肿


Ruby

640?wx_fmt=other

  1. sinatra 2580

  2. grape 7229

  3. rails 130379 泰肿


Java

640?wx_fmt=other

  1. spring-core 75207 

  2. spring-aop 25984

  3. spring-web 49017

  4. spring-webmvc 60246

  5. spring-beans 51070

  6. spring-context 76356

  7. spring-boot 50847


统计方法

统计的时候我发现有些框架的代码比我想象的大的太多,所以我对这些代码量大的代码进行了反复统计,去掉路径包含test/example/benchmark/vendor等的代码,进行wc -l汇聚得到的最终结果。


注

这样直接对比对某些框架来说是不公平的。有些框架注释比较多,有些框架几乎没有注释。我的统计方法里面没有把注释去掉。不过注释并不是最重要的区别,最大的区别在于有些框架是微内核,有些框架是full-stack的。fullstack的框架可以直接拿来即用,而微内核一般还需要引入额外的插件和扩展才能达到相似的效果。除此之外还有一个重大的区别是HTTP服务器在某些语言中是内置的,而另外一些语言的HTTP服务器则需要单独编写。

从源码学习角度来说,自然还是应该选择微内核的,代码量大了阅读起来会是一头雾水。微内核短小精悍,浓缩的都是精华。

学习源码的相关链接

640?wx_fmt=other

  1. https://github.com/pyloque/httpkids 1200行代码的Java Web框架

  2. https://github.com/pyloque/ormkids 2000行代码的Java ORM框架

  3. https://github.com/pyloque/rpckids 700行代码的Java RPC框架

  4. https://github.com/pyloque/iockids 200行代码的Java依赖注入框架

关注公众号「码洞」,一起学习源码。

Go Web后端框架对比:选对框架事半功倍 本文旨在为Go开发者提供全面的Web框架选型指南,涵盖市场占有率Top 6的框架技术分析、性能对比和适用场景判断。研究范围包括框架架构设计、路由性能、中间件生态、学习曲线等关键维度。通过架构图解、算法实现、数学建模和实战对比四重验证体系,建立科学的框架评估模型。最后提供可落地的选型决策树工具。Radix Tree路由:基于基数树实现的高效URL匹配算法Context池化:请求上下文对象的复用管理策略:零内存分配的高性能编程模式WASM支持成为标配自动生成API文档工具集成。 阅读详情

相关推荐

2024主流Web框架横向对比:Gin、Laravel、ThinkPHP、Spring Boot及更多框架的选型指南

没有“最好”的框架,只有“最合适”的选择。根据团队技术栈、项目规模和性能需求综合权衡,才能最大化开发效率与系统稳定性。

rockmelodies的博客 2093

探索WebbCompare:一款强大的在线代码对比工具

探索WebbCompare:一款强大的在线代码对比工具 项目简介 是一个由John Ed Christensen开发的开源项目,旨在为开发者提供一个直观、高效的代码差异比较工具。它允许用户上传两个不同的代码文件,然后以清晰易读的方式显示两者的差异。这款工具对于代码审查、版本控制、合并冲突解决等日常开发任务来说,无疑是一大利器。 技术分析 WebbCompare的核心是利用前端框架和后端服务来实现文...

gitblog_00061的博客 2215

Go Web 框架性能对比:Golang 中的多个选项

适用场景:对于对性能有严格要求的应用,或者开发者愿意自己动手实现路由等基础设施的情况,net/http是最合适的选择。缺点:开发效率较低,缺少一些高级功能。适用场景:需要高性能且快速开发的场景,Gin 是一个很好的选择。缺点:虽然性能高,但相较于一些更轻量的框架,Gin 的开销略大。适用场景:需要高效路由和中间件、同时注重开发效率的应用。缺点:功能虽然强大,但其复杂性和一些内存开销可能使得它不适合极限性能要求的项目。适用场景:需要极致性能,特别是在处理高并发请求时,Fiber 是最理想的选择。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1368

探索`diffscreen-web`: 在线代码差异查看利器

探索diffscreen-web: 在线代码差异查看利器 在软件开发中,比较和理解代码差异是一项常见且重要的任务。diffscreen-web 是一个强大的在线代码差异对比工具,它提供了直观、易用的界面,使开发者能够高效地审查和理解代码变动。下面我们将深入探讨其技术特性、用途及优势。 项目简介 是一个基于 Web 的代码差异查看器,旨在简化代码版本控制的过程。它支持多种编程语言,并且可以轻松处理大...

gitblog_00076的博客 649

多种语言源代码行数统计

我自己写的一个统计员代码行数的小程序,需要安装.net framework1.1,还有excel。可以统计JAVA,C,C++,C#,PHP,RUBY,HTML,JavaScript,CSS,JSP,ASP,ASPX,INI,BAT,CMD文件的总行数,空行数,注释行数。那么有效行数就可以得到了啊。 为什么被删除了,是标签不对还是有病毒?

代码行差异统计工具,勇于比较两个代码包的新增,修改,删除的代码量,并能按语言类型归类

通过例子介绍使用方法如下: 1.差异统计 统计某一个版本的代码包相对于一个原始的基线代码包,变动的代码量 以及变动的代码量中各语言非空非注释行(NBNC)的结果 diffcount 缺省执行的就是差异统计,直接跟上两个代码包的目录即可 在diffcount目录下执行: diffcount test\sp1 test\sp2 实际使用中,可能会有文件名和目录名大小写不一致的情况,如果希望忽略 文件名大小写的差异,需要使用 --ignore-case 参数,否则两个一样的文件 一个会算作删除,一个会算作新增 G:\diffcount>diffcount test\sp1 test\sp2 Diffcount [test\sp1] and [test\sp2] result: LANG ADD MOD DEL A&M BLK CMT NBNC RATE ----------------------------------------------------------------------- C 44 7 26 51 8 11 35 1.00 Pascal 0 0 25 0 0 0 0 0.23 Java 7 4 11 11 0 3 9 0.41 Config 31 4 0 35 1 0 34 0.12 XML 126 0 0 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert all NBNC lines to standard C Total: 57.65 (standard C lines) ADD MOD DEL A&M BLK CMT NBNC RATE 的 含义分别为: 新增、修改、删除、新增+修改、空行、注释、非空非注释行、标准C折算率 2.代码统计: 如果需要,可以把diffcount当作普通的代码行统计工具,统计一个代码包 代码统计使用 -c (或者--count-only)参数, 在diffcount目录下执行 diffcount -c test\count 执行结果如下: G:\diffcount>diffcount -c test\count Counting package [test\count] result: LANG TOTAL BLK CMT NBNC RATE ----------------------------------------------------------------------- C 203 46 61 101 1.00 C++ 57 7 25 25 0.42 Pascal 117 24 17 79 0.23 Java 71 7 24 40 0.41 ASM 129 34 12 85 2.50 C# 18 1 1 17 0.20 Basic 447 140 20 295 0.21 Perl 97 4 26 74 0.16 TCL/TK 91 12 26 54 0.50 Config 116 13 0 103 0.12 XML 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert

终极Vue代码对比神器:如何用v-code-diff实现高效版本差异可视化

你是否还在为Vue项目中复杂的代码版本对比而头疼????? 无论是团队协作中的代码审查,还是个人开发时的版本回溯,清晰直观的代码差异展示都是提升效率的关键。今天我要向你推荐一款**免费开源**的Vue代码差异对比插件——**v-code-diff**,它支持Vue2和Vue3双版本,让代码差异对比变得前所未有的简单高效!???? ## 为什么选择v-code-diff?核心优势解析 ### ✅ 跨版本...

gitblog_01033的博客 1204

手机摄影新宠:In-line Hardware EIS如何让你的4K视频稳如鸡头(附实测对比)

本文深入解析了手机摄影中的In-line Hardware EIS(硬件级行内电子图像稳定)技术。通过对比传统软件EIS,阐述了其通过硬件管道实时处理实现极低延迟、减少画面裁切和有效抑制果冻效应的核心优势,并结合4K视频的日夜间实测,展示了该技术如何让手持拍摄的视频“稳如鸡头”,显著提升创作体验与成片质量。

tree的博客 998

【Web开发与云原生专题】Go语言Web框架深度对比:性能、特性与使用场景全解析

深入对比Go主流Web框架的性能指标、功能特性与实际应用场景,助您在项目中选择最合适的框架,支持从RESTful API到全栈应用的各类开发需求

GopherTribe的博客 2189

深入解析DDR5 SDRAM中的CA训练模式(CATM):原理与实现

本文深入解析DDR5 SDRAM中的CA训练模式(CATM),详细探讨其工作原理与实现方法。通过分析JESD79-5标准,揭示CATM在时序校准、信号质量优化和系统稳定性方面的核心价值,并提供硬件设计考量和系统级调试技巧,帮助工程师解决高速内存系统中的信号完整性问题。

weixin_29235923的博客 386

保姆级教程:在阿里云ECS上用Docker一键部署EMQX MQTT服务器(Ubuntu 20.04)

本文提供在阿里云ECS上使用Docker一键部署EMQX MQTT服务器的详细教程,涵盖从实例创建、Docker环境配置到EMQX部署与优化的全流程。适合物联网开发者快速搭建高效、安全的MQTT消息服务器,适用于智能家居、工业物联网等场景。

weixin_28739079的博客 308

nodejs 主流web框架对比

Node.js主流Web框架对比。由于C++所具有的优势,该项目组的研究人员首先考虑采用C++来编写程序。但对于硬件资源极其匮乏的单片式系统来说,C++程序过于复杂和庞大。另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。 Node.js是专注高性能服务器开发的Javascript运行环境。我们将在这篇文章向大家介绍几款主流Node.js Web框架的特点及优缺点,希望给大家作为参考。 主要参考的Node.js Web框架包括:express, koa, ha

韩吉鑫的博客 6410

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

王老师青少年编程 3398

【Go 语言主流 Web】 框架详细解析

本文详细解析了Go语言主流的5个Web框架(Gin、Echo、Fiber、Beego、Iris)及微服务框架Kratos。这些框架分为轻量级和全栈/微服务两类,各有特点:Gin生态最完善,Echo简洁高效,Fiber性能顶级,Beego全栈开发友好,Iris功能全面,Kratos适合企业级微服务。文章提供了框架对比总表,包含性能、学习成本和适用场景等指标,并通过实战代码示例展示各框架的核心功能。开发者可根据项目需求选择合适框架,如高并发选Fiber,快速开发选Beego,微服务选Kratos等。

独立思考,明辨是非 1362

【WRFDA教程】客观分析(OBSGRID)详解

客观分析(OBSGRID)详解

WW、forever的博客 1134

Android Update Engine 分析(三四)OTA 签名都支持哪些算法?

写了几十篇还没涉及到 OTA 签名算法细节,OTA 讨论群也很少问这个,毕竟签名算法纯理论的问题,一旦实现好就极少需要改动,只需要进行一些配置,准备好签名的秘钥和证书就可以了。限于签名的算法理论太过于抽象,本篇不讨论签名算法细节,但会总结一些签名操作。以及 Android OTA 包支持的签名算法。本文主要分析 Update Engine 中支持的签名算法,以及这些算法的操作实现(不涉及原理部分),并总结签名和验签使用的 key。

洛奇看世界 716

Go语言五大主流web框架

Golang web框架

深漂小码哥 1万+

SAP_PP模块跑完 MRP,MD04 里却看不到“计划订单”?排查这 3 个最容易被忽略的主数据参数

MRP 是 SAP 逻辑最严密的模块之一,它绝不会随机罢工。当 MD04 里看不到计划订单时,请不要怀疑系统的计算能力。99% 的情况,都是因为我们给系统下达了矛盾的指令:一边告诉它“我有需求”,一边却通过主数据告诉它“不要计划”、“不要触发”或者“我是冻结的”。掌握这 3 个排查点,你就能在 5 分钟内解决大部分“MRP 失灵”的悬案,成为用户眼中的“系统神医”。

我小时候很黑的博客 602

主流WEB开发语言简单对比

主流WEB开发语言简单对比 随着时间的飞逝,随着岁月的流失。从世界上第一台计算机ENIAC诞生至今,已经有将近半个世纪了。经过这半个世纪的语言发展,我们所接触的语言基本上都是高级语言了。这篇文章主要对现在比较主流的WEB开发语言,做一个简单的对比。 JAVA 简介: Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Jav

cuihongxing1010的专栏 2万+

ContextCapture系列教程(三):大疆精灵4RTK版无人机POS数据提取、处理(处理后勉强达到免相控要求)

大疆精灵 Phantom 4 RTK于2018年发布,是大疆为高精度建图与精准飞行设计的行业级无人机,在精灵4无人机外形的基础上,机身增加了RTK模块,可以实现高精度 RTK 定位导航,相机与 RTK 系统采用微秒级时间同步,可以通过app 进行航线规划飞行

pausau的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

主流的6个Go语言Web框架

GO 语言爱好者的最佳Web框架 如果你是自己写一个小应用程序,那你可能不需要Web框架。但是如果你要做产品,那么你肯定需要一个好的框架。 如果你认为你有相应的知识和经验,你会自己编写所有的这些代码么?你有时间找到一个产品级的外部包来完成工作吗?你确定这与你应用程序的其它部分一致吗? 这些都是促使我们(即便是我们中最优秀的)使用框架的原因,如果其他人已经做了必要的艰苦的工作,我们不会想让自己重复这些工作。 简介 Go 是一个快速增长的开源编程语言,用于构建简单、快速和可靠的软件。点这里看有哪些大公司在使用G

weixin_50196917的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

3大主流语言web框架写hello world

在现代后端开发中,选择合适的Web框架对项目效率、性能和可维护性至关重要。本文将带你了解三大主流编程语言(Java、Go、Python)中最具代表性的Web框架:Spring Boot(Java)、Gin(Go) 和 Flask(Python)。从设计理念、性能特点、开发效率、适用场景等方面进行对比,并结合编写的daemon,展示它们的使用方式。

qq_73797346的博客 999

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

揭秘Rust Web框架选型难题:5大主流框架全面对比分析

解决Rust Web开发框架选择难题,本文深入对比5大主流框架的性能、生态与适用场景。涵盖Actix、Rocket等核心方案,分析异步支持、学习成本与社区活跃度,助力高效技术选型。值得收藏的Rust Web开发决策指南,点击了解。

AlgoInk的博客 1191

web框架如何选择----各大流行并适用的主流web框架

摘要:主流后端框架按语言生态分类: Python:全栈型Django、轻量Flask、高性能FastAPI Java:企业级SpringBoot、传统SpringMVC、分布式JakartaEE JS/TS:灵活Express.js、模块化NestJS、轻量Koa.js PHP:优雅的Laravel、组件化Symfony Go:高并发Gin/Echo Ruby:高效RubyonRails 趋势:企业级(SpringBoot/Django/ASP.NET)、API服务(FastAPI/NestJS/Gin)、

2301_81785889的博客 1792
上一篇: 编程的智慧
下一篇: 一个Raft开源项目的结构分析
码洞
博客等级 码龄10年 41粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值