大佬们,强类型语言,定义结构多了会有什么问题?

2022-11-28 12:17:25 +08:00
 uiosun

目前写 Go/C#,喜欢定义各种结构,看到 StackOverflow 上有人说“你当然可以将 Request / Response 都定义出来,但定义太多结构,会占用部分内存”。

我是从弱类型语言转过来的( PHP/Python/JavaScript 都写过),转的核心原因就是强类型方便的定义结构和类型。

特别喜欢把类型结构定义好——结构标准,类型固定,运算省心,IDE 能提示,心里会很舒服,算是代码洁癖之一。

所以现在自己的项目有 30+ 个接口,每个接口都有声明好的请求、响应结构,再加上自己的习惯,就变成了:


按照自己的需求规划,目前的结构数量翻个倍没问题,所以有点心慌,想问一下大佬们,这会占用很多内存吗?有啥办法衡量没有?

如果结构真的很多、且真的会占用内存,怎么办,拆成微服务 + gRPC ?

671 次点击
所在节点    问与答
6 条回复
nightwitch
2022-11-28 12:22:53 +08:00
😢30+个接口就在操心这事了。。3000 个再说吧
uiosun
2022-11-28 12:43:38 +08:00
@nightwitch 那我就放心了,主要是有点摸不着底,毕竟没考虑过这玩意怎么加载、卸载的😂
CEBBCAT
2022-11-28 13:02:37 +08:00
第一点是要深深地记住,计算机界有很多人不是很懂回答问题。我当时初学 C 的时候搜怎么定义动态数组,百度知道一个回答说要 malloc 申请内存,很危险,建议别这么做,我居然信了,干,真是误人子弟

第二点是可以学学 Linux 的 loader 、Go 的汇编生成(含逃逸分析)方面的东西,你就会知道到底什么在占内存。你想想你引用到的底层库又得有多少类型声明,九牛一毛而已

最后……不要过早优化,在那之前学习好的编程风格就可以了
uiosun
2022-11-28 13:19:41 +08:00
@CEBBCAT 感谢大佬,指了条明路哇!我研究研究
Kilerd
2022-11-28 13:54:46 +08:00
首先 python 是强类型语言
uiosun
2022-11-28 14:00:49 +08:00
@Kilerd 喔!不好意思,可能是我写的都是些脚本,导致觉得它是弱类型。浅薄了浅薄了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/898462

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX