V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  codingmiao  ›  全部回复第 1 页 / 共 2 页
回复总数  28
1  2  
商人不就这样么,gpt 面向用户的时候,月付制更赚所以 GPT4 包月,给第三方 API 调用的时候他敢给月付么,又变成按量计费了。

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

所以哪有什么绝对安全的方案,只要你的软件价值小于别人攻破你的成本就行了
41 天前
回复了 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 贴进去,博客园还要先上传图片再引入图片,文本编辑器也感觉是十多年前的风格,有没有插件可以优化一些写博的体验啊?
@HOMO114514 这顿操作没看明白,为了遵守 GPL 开源,但是所谓自主可控后为什么就不需要遵守 GPL 了?那别人用的过程中发现他基于 GPL 的代码痕迹,那他不完蛋了。。
57 天前
回复了 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
91 天前
回复了 diagnostics 创建的主题 Java 有多少人还在用 Maven 构建项目?
用了 gradle 才知道 maven 的好。一次配置到处运行,gradle 是很灵活,但是别人用还得提心吊胆版本不兼容之类的问题,一个构建工具要花那么多心力去维护真的累。
要不是老板既要效率又要安全,谁会冒着风险干这事啊,玩不成任务立马滚蛋,走后门小概率滚蛋的区别。
@dasbn 我觉得 Mybatis Plus 作者喷得对,允许传 sql 片段在纯后端用带来很大的灵活性,而且自己可控传什么,总不能自己给自己传个注入语句。使用者自己非要把这个特性暴露给前端还不在执行前做校验( Mybatis Plus 本身也提供了 sql 注入检测的工具类),把刀子递给黑客还怪刀尖没做安全设计这不是纯纯巨婴行为。
93 天前
回复了 panlatent 创建的主题 分享创造 来推荐推荐自己的开源项目和经验吧
@adrianzhang 有点像 socat ,但机制上更像是 java 版的 frp ,复用一个端口来映射多个端口,而且留出来写代码实现自定义协议的口子,方便我这样写 java 的 crud boy (没有说 java 不好的意思,java 写 crud 确实很成熟^_^)根据业务和环境自己去通过 kafka 、文件、数据库之类的媒介来打通网络。
94 天前
回复了 panlatent 创建的主题 分享创造 来推荐推荐自己的开源项目和经验吧
[hppt]( https://github.com/codingmiao/hppt) 是一个可以通过任意网络媒介打通两台机器间 TCP 网络连接的工具


比如说,A 、B 两台机器不互通,但是 A 、B 都可以访问机器 C 上的 kafka ,那就可以用这个工具,通过 kafka 搭一个桥梁,使得 A 能访问 B 上任意的 TCP 端口。

起因是用户那边有台服务器只对外开了 80/443 端口,而且不能配 websocket 等长连接,我又不想老是飞现场解决问题,就写了个把 http 服务反转 tcp 的工具来远程运维,后来想想飞现场攒航空里程挺香的所以没用几天就关了。但发现这玩意挺有意思,就扩充了一下,变成可以支持任意协议的版本。
@itning 是的,但是 frp 必须开一个单独 TCP 端口,有时候两台机器间没有空余且可达的 TCP 端口。
于是大半年后我发现这玩意除了主题里的在违法的边缘试探的玩法,还可以改造一下,让它能以任意媒介来打通两台机器间的网络。于是就有了 2.0 版的[自定义通信方式的玩法]( https://github.com/codingmiao/hppt?tab=readme-ov-file#%E7%A4%BA%E4%BE%8B3-%E7%BC%96%E5%86%99%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8D%8F%E8%AE%AE),比如拿 kafka 中介打通两台不互通的机器:

![kafka]( https://raw.githubusercontent.com/codingmiao/hppt/main/_doc/img/kafkademo.jpg)
发现了几个好玩的工具站,挺好的,抽中我了就给楼下吧
125 天前
回复了 xlzyxxn 创建的主题 程序员 Java 的 GEO 问题
哦对了,mysql 的 geometry 就是个玩具,wgs84 的坐标 x y 非要反着存,linestring 会莫名其妙的不走索引等问题,非常不推荐使用
125 天前
回复了 xlzyxxn 创建的主题 程序员 Java 的 GEO 问题
几种我自己用的方案:
数据量很小时,直接 jts 在内存里遍历判断。
数据量大时,可以考虑在内存里搞一棵 Rtree https://www.khelekore.org/prtree/index.shtml
我自己撸了个变种,把 Rtree 从内存放倒图数据库 https://github.com/codingmiao/neo4j-rtree?tab=readme-ov-file#%E6%9C%80%E9%82%BB%E8%BF%91%E6%90%9C%E7%B4%A2
也可以给 pg 装个 postgis 插件来处理。
redis 用 geohash 来实现空间索引,优点是简单,但 geohash 的不连续性会导致某些坐标的查询性能骤降有点烦。
135 天前
回复了 javak 创建的主题 Java 曾经我以为 Java21 的虚拟线程是银弹...
@marding 挺好的,原来 16 核 CPU 直接拉满,改虚拟线程后 3 、4 个核的样子就能撑住。关键是改动量很少,升级到 21 ,换了几个太老的 maven 依赖,把线程换成虚拟线程就完事了。
225 天前
回复了 mercurylanded 创建的主题 Java 发现个好玩的事情
你们居然在认真讨论没有喷谭浩强。。
238 天前
回复了 danielxuforever 创建的主题 PostgreSQL Postgres 在中国还能起来么?
@jhdxr 我们有个场景是需要时序和 gis 混合查询的,直接就 timscaledb+postgis 两个插件一装完事了,DB 就天然具备了空间查询和时序查询的能力,如果用其它方案,再起两个中间件,那还要考虑各个中间件数据一致性、跨库查询等问题。
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5637 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 01:47 · PVG 09:47 · LAX 18:47 · JFK 21:47
Developed with CodeLauncher
♥ Do have faith in what you're doing.