codingmiao 最近的时间轴更新
codingmiao

codingmiao

V2EX 第 582929 号会员,加入于 2022-05-27 09:19:04 +08:00
今日活跃度排名 11714
codingmiao 最近回复了
1 天前
回复了 gotheway 创建的主题 Java 求一个技术架构
@gotheway GIS 项目而且是 java 体系的话,我推荐 postgis 做为数据库、jts 做为后端空间计算框架,其它就是传统的 web 框架了,springboot 全家桶什么的,以及基于 springboot 体系做的 ruoyi 等。

另外数据量大的话,极度不推荐去用 geoserver ,虽然是 java 体系而且功能很全,但一板一眼的去按 OGC 标准来做实现,性能极差。基于 jt 或者 geotools 等去开发需要的功能,轻量化、定制化的去做比用 geoserver 舒服很多。我搞了一些基于 jts 的小工具出来,但比较懒没去好好写文档 https://github.com/codingmiao/giscat
商人不就这样么,gpt 面向用户的时候,月付制更赚所以 GPT4 包月,给第三方 API 调用的时候他敢给月付么,又变成按量计费了。

说起这个,想起来国服魔兽世界的点卡了,年轻时有时间整天整夜的玩盼着出月卡,年纪大了没时间玩了,嘿嘿月卡来了点卡取消,当时网易也不当人,大大方方承认点卡运维成本高,再卖一波情怀,大家也能谅解,偏偏要搞什么张栋出来嘲讽玩家,搞一堆水军洗地,是真的蠢。
其实 java 或者其它编译后的语言也并不安全,现在所谓的 jar 包保密方案,也只是给文件加个密,然后 Java Agent 启动时解密,但是随便丢个 arthas 之类的工具上去,从内存中拿字节码反编译出来根本防不住。

所以哪有什么绝对安全的方案,只要你的软件价值小于别人攻破你的成本就行了
88 天前
回复了 karottc 创建的主题 Java 分享一个 Springboot + GraalVM 对反射的处理方式
我是 java -agentlib:native-image-agent=config-output-dir=META-INF/native-image -jar xxx.jar 先跑起 jar 包来,然后跑测试用例,测完后 reflect-config.json 这些也自动生成出来了,优点是不用去动原来的代码,缺点是测试用例覆盖不全的话可能会出问题。
所以现在把数据库丢容器里是否合适有定论了么,会损失百分之几的性能
博客园的博客质量很高,但是在博客园码博客真的难受啊,别的地方都可以直接屏幕截图然后 ctrl+v 贴进去,博客园还要先上传图片再引入图片,文本编辑器也感觉是十多年前的风格,有没有插件可以优化一些写博的体验啊?
101 天前
回复了 HOMO114514 创建的主题 程序员 分享一些 500 强信创数据库的有趣故事吧
@HOMO114514 这顿操作没看明白,为了遵守 GPL 开源,但是所谓自主可控后为什么就不需要遵守 GPL 了?那别人用的过程中发现他基于 GPL 的代码痕迹,那他不完蛋了。。
105 天前
回复了 javak 创建的主题 Java Java hello world 确实就要占用 30M
实验 1 、直接原生 java -jar 跑
我 win10 占内存 36m ,同事的 mac(arm 架构)只有 19m ,win10 简单加几个参数能压到 20 多 m
java -Xmx5m -Xms1m -XX:MaxMetaspaceSize=1m -XX:+UseSerialGC -XX:CompressedClassSpaceSize=1m -Xss512k -Xint -jar nativedemo-1.0-SNAPSHOT.jar
然后拉一下内存使用情况:
Memory used total max usage GC
heap 22M 252M 3986M 0.57% gc.g1_young_generation.count 2
g1_eden_space 4M 62M -1 6.45% gc.g1_young_generation.time(ms) 14
g1_old_gen 12M 184M 3986M 0.32% gc.g1_concurrent_gc.count 0
g1_survivor_space 6M 6M -1 100.00% gc.g1_concurrent_gc.time(ms) 0
nonheap 28M 31M -1 90.20% gc.g1_old_generation.count 0
codeheap_'non-nmethods' 1M 2M 5M 26.09% gc.g1_old_generation.time(ms) 0
metaspace 19M 20M -1 98.64%
codeheap_'profiled_nmethods' 3M 3M 117M 3.27%
compressed_class_space 2M 2M 1024M 0.22%
codeheap_'non-profiled_nmethods' 838K 2496K 120028K 0.70%
mapped 0K 0K - 0.00%
direct 4M 4M - 100.00%
mapped - 'non-volatile memory' 0K 0K - 0.00%

我拿 arthas 拉的,arthas 注入进来后内存有膨胀了一些,你看占用大头都在 metaspace 、codeheap 以及 old_gen 上,这 hello world 又没 new 啥对象,old_gen 肯定是一些 static 的对象了,这就说明了这些内存是基本消耗,不会随着你的应用增长。

实验 2 、native 打包
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>${native.maven.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>native-image</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>${mainClass}</mainClass>
</configuration>
</plugin>
</plugins>
</build>

这个打完在 x64 的 kali 下运行只占 8m ,在 arm 架构下还会更低。


在复杂场景下,实验 1 以及诸多大厂的生产环境都证明了 java 的稳定可靠,实验 2 则说明如果确实需要在物联网终端等内存极其苛刻的场景下使用,native 也能胜任。所以 Java 内存没救了?你要救什么?
开着 0 信任的时候,telnet localhost 3389 能通么,能的话试试这个方案,需要用的时候把 VPS 上的端口开一下,不需要关了应该没问题

"假设你家里有一台台式机(ssh 端口为 22),并且有一台公网 VPS 服务器(ip 111.222.33.44),你想在公司用笔记本登录家里的台式机,可按如下结构部署"

https://github.com/codingmiao/hppt?tab=readme-ov-file#%E7%A4%BA%E4%BE%8B2-%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E9%80%9A%E8%BF%87%E5%85%AC%E7%BD%91%E8%BD%AC%E5%8F%91%E8%AE%BF%E9%97%AE%E6%97%A0%E5%85%AC%E7%BD%91ip%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8
139 天前
回复了 diagnostics 创建的主题 Java 有多少人还在用 Maven 构建项目?
用了 gradle 才知道 maven 的好。一次配置到处运行,gradle 是很灵活,但是别人用还得提心吊胆版本不兼容之类的问题,一个构建工具要花那么多心力去维护真的累。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5407 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 03:47 · PVG 11:47 · LAX 19:47 · JFK 22:47
Developed with CodeLauncher
♥ Do have faith in what you're doing.