Golang中国

我写程序有个缺点,就是尽量简化代码; 一段代码,总是纠结是否多浪费了哪怕多一点的内存;

比如:

type HTTP struct{
   Context -Context
}
type Context struct{
   Request -http.Request //方便
   input -Input //因为这里存了很多工具函数;
   HTTP -HTTP   //把上层的HTTP指针再存下;
}
type Input struct{
  Request -http.Request 
  HTTP -HTTP
}

上面的定义,重复存储了很多东西,主要目的就是任何一个结构体都能实现很多方法,而不是传参;

虽然是指针,浪费不了什么资源. 但就是心里接受不了; HTTP是主要结构体,每个连接都会使用, 虽然存指针不浪费什么内存,但高并发….也会增加GC压力;
这种担心是否多余?


jimmykuu 于 2017-02-17 10:08 修改
6 回复
imjj
#1 imjj • 2017-02-17 14:34

没太理解要干什么

不过,如果”主要目的就是任何一个结构体都能实现很多方法”,那么,这个在工程上的损失是远大于其有可能得到的收益。

一般性能的问题都可以归结到

  1. 更有效的算法
  2. 内存的复用,不会重复的申请释放

从例子上看不出来有相关的点。

itfanr
#2 itfanr • 2017-02-19 17:20

如果纠结性能,可以学习rust语言

flw
#3 flw • 2017-02-22 19:51

看到标题我想对你说,“过早优化是罪恶之源”,不过看到内容,好像说的更加是设计和理性的问题,不是性能的问题呀。设计合理不合理这得举一个恰当的例子来说明,你这个例子看不出什么来。

wptskybzy
#4 wptskybzy • 2017-03-01 13:03

其实完全没有必要。一般来说程序按照正常逻辑,适当的进行一些常规优化,就可以跑得很好。
如果你很清楚哪个地方会出现严重托慢性能的地方,那么最好是提前就优化好,否则就不需要优化,等到性能扛不住了,再来分析哪个地方会有问题。

coldwater
#5 coldwater • 2017-05-12 13:33

其实就是代码写的太少,写多了,自然就好了

oneofwower
#6 oneofwower • 2017-06-06 13:40

多余,过早的优化是万恶之源。
高并发的优化,要遇到了才知道热点在哪里,太早优化往往都做了一些无关紧要的事

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。