1
rykinia 2021-08-12 10:56:20 +08:00
|
2
cubecube 2021-08-12 10:58:30 +08:00
几百兆夸张了,spring boot 空项启动目大概 50M 内存。
|
3
dqzcwxb 2021-08-12 11:01:06 +08:00 4
又要功能多又要瘦
那我诚招妹子,要求简单,腰细胸大即可 |
4
fkdog 2021-08-12 11:02:21 +08:00
micronaut
|
5
hcen1997 2021-08-12 11:03:23 +08:00
换个思路, 是不是以前的代码没有 ioc 功能
ioc 功能是不是在现在的软件开发当中是非常重要的, 那么实现这个功能就要一定的代码量, |
6
abcbuzhiming OP @cubecube 空项目有啥用呢,你加个最基础的 web 依赖试试
|
7
ikas 2021-08-12 11:27:27 +08:00
功能多怎么就消耗内存了?只用 ioc,那么只引入 context 就好了,也就几个核心依赖
|
8
pengtdyd 2021-08-12 11:30:41 +08:00
杞人忧天 代码优化 1w 遍,远没有花钱买个好一点的服务器强
|
9
ufan0 2021-08-12 11:39:06 +08:00
1. 一个非常简单的 Api 跑起来背着一大坨依赖,内存占用几百 M 那都算是少的
你所谓的几百 M 是直接在 Linux 上看的吧,怀疑你的查看方式,其并非真实内存占用。 2. 想瘦身,多排除依赖,但是效果并不明显,因为这个内存占用并没有几年前的帖子说的那么高。 3. 不喜欢 Spring 家族考虑一下 Vert.x,我们网关 All in Vert.x 了,但是仅觉得写异步顺手。 |
11
Cbdy 2021-08-12 12:06:44 +08:00 via Android
Spring 官方的例子,一个 CURD 的 demo,启动内存可以控制在 20M
|
12
Cbdy 2021-08-12 12:10:33 +08:00 via Android
|
13
chendy 2021-08-12 12:24:32 +08:00
瘦身的方向和目标是什么?如果是减少内存使用的话,其实直接加参数就能限制住,顶多内存不够用频繁 gc 导致性能下降
|
14
sagaxu 2021-08-12 12:35:16 +08:00 via Android 1
别折腾了,换 Go 吧
|
15
renyijiu 2021-08-12 12:39:42 +08:00
micronaut quarkus 为什么没有呢?
|
16
Ayanokouji 2021-08-12 13:04:28 +08:00
Spring Native
|
19
Lemeng 2021-08-12 13:11:12 +08:00
最不喜欢折腾如我。
|
21
sue0917 2021-08-12 13:37:11 +08:00
思考这些东西不如加钱升级内存
|
22
jack778 2021-08-12 13:40:48 +08:00
用 jfinal 吧,作者有强迫症,只需要导入核心包,核心包不依赖任何第三方 jar.
|
23
cheng6563 2021-08-12 14:53:16 +08:00
换 openj9 的 jvm,内存给你干一半下来。
|
24
nekoneko 2021-08-12 16:44:08 +08:00
还想用 spring 还要瘦身那就 spring native
然后可以考虑 quarkus,国内文档少 |
25
securityCoding 2021-08-12 16:45:22 +08:00
@sagaxu +1,换 go 可以多活几年
|
26
passerbytiny 2021-08-12 17:36:47 +08:00 via Android
你要想瘦身源代码那还可以去开发者社区讨论讨论,你要想瘦身运行时占用,那建议直接换掉 Java——Spring 程序的资源占用没有比非 Spring Java 程序的高。
此外,Java 内存占用只是预分配占用高,实际上并不高。通过合理配置 JVM 参数,几十 M 内存就能支撑起小型服务器。 |
27
mmdsun 2021-08-12 18:59:25 +08:00 via Android
vert.x,akka,jooby 也行。不过占用也高,只能看 spring native 出来后了。
要是 java 系找不到除 spring 好用的框架就看.net 系列,java 程序员基本上可以无缝对接,比如: [asp.net core] 这个 web api 和 spring boot 差不多,外国框架热度已经超过 spring 了 https://dotnet.microsoft.com 数据访问层,相当于 spring data jpa: https://docs.microsoft.com/zh-cn/ef/core/ [Web 性能排名:] vert,x 前 20,spring 在后面 50 左右,asp.net 前十: https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=composite |
28
jin7 2021-08-13 08:39:50 +08:00
换 c#
|
29
zzzmh 2021-08-13 10:06:28 +08:00
jvm openj9 是一个方法,放在 docker 里运行限制内存优先 swap 是一个方法,这 2 个也可以结合一起用。
如果要治本,换 go 也可以,一定要 java,自己写 servlet,没开玩笑,servlet 真的可以实现 springboot 所有功能,只要你有本事和耐心写。。。不用 tomcat 都行,自己写 http 服务。就是累挺,有这时间,不如买个内存大点的服务器 |
30
Joker123456789 2021-08-18 16:19:17 +08:00
不知道你为什么会对 IOC 有如此强的依赖, 如果可以不用 IOC 的话,vert.x 是个好选择。 或者你可以自己写一个 vert.x plus,给 vert.x 加上 IOC 的特性,作为分支发布。
|