Optimize maligned structs
This commit is contained in:
parent
7909fb5ff3
commit
f554a1c543
@ -24,6 +24,7 @@
|
||||
- Add some testing scripts [4461](https://github.com/beego/beego/pull/4461)
|
||||
- Refactor httplib: Move debug code to a filter [4440](https://github.com/beego/beego/issues/4440)
|
||||
- fix: code quality issues [4513](https://github.com/beego/beego/pull/4513)
|
||||
- Optimize maligned structs to reduce memory foot-print [4525](https://github.com/beego/beego/pull/4525)
|
||||
|
||||
|
||||
## Fix Sonar
|
||||
|
||||
@ -101,29 +101,30 @@ func newFields() *fields {
|
||||
|
||||
// single field info
|
||||
type fieldInfo struct {
|
||||
mi *modelInfo
|
||||
fieldIndex []int
|
||||
fieldType int
|
||||
dbcol bool // table column fk and onetoone
|
||||
inModel bool
|
||||
name string
|
||||
fullName string
|
||||
column string
|
||||
addrValue reflect.Value
|
||||
sf reflect.StructField
|
||||
auto bool
|
||||
pk bool
|
||||
null bool
|
||||
index bool
|
||||
unique bool
|
||||
colDefault bool // whether has default tag
|
||||
initial StrTo // store the default value
|
||||
size int
|
||||
colDefault bool // whether has default tag
|
||||
toText bool
|
||||
autoNow bool
|
||||
autoNowAdd bool
|
||||
rel bool // if type equal to RelForeignKey, RelOneToOne, RelManyToMany then true
|
||||
reverse bool
|
||||
isFielder bool // implement Fielder interface
|
||||
mi *modelInfo
|
||||
fieldIndex []int
|
||||
fieldType int
|
||||
name string
|
||||
fullName string
|
||||
column string
|
||||
addrValue reflect.Value
|
||||
sf reflect.StructField
|
||||
initial StrTo // store the default value
|
||||
size int
|
||||
reverseField string
|
||||
reverseFieldInfo *fieldInfo
|
||||
reverseFieldInfoTwo *fieldInfo
|
||||
@ -134,7 +135,6 @@ type fieldInfo struct {
|
||||
relModelInfo *modelInfo
|
||||
digits int
|
||||
decimals int
|
||||
isFielder bool // implement Fielder interface
|
||||
onDelete string
|
||||
description string
|
||||
timePrecision *int
|
||||
|
||||
@ -22,16 +22,16 @@ import (
|
||||
|
||||
// single model info
|
||||
type modelInfo struct {
|
||||
manual bool
|
||||
isThrough bool
|
||||
pkg string
|
||||
name string
|
||||
fullName string
|
||||
table string
|
||||
model interface{}
|
||||
fields *fields
|
||||
manual bool
|
||||
addrField reflect.Value // store the original struct value
|
||||
uniques []string
|
||||
isThrough bool
|
||||
}
|
||||
|
||||
// new model info
|
||||
|
||||
@ -118,6 +118,10 @@ var _ Fielder = new(JSONFieldTest)
|
||||
type Data struct {
|
||||
ID int `orm:"column(id)"`
|
||||
Boolean bool
|
||||
Byte byte
|
||||
Int8 int8
|
||||
Uint8 uint8
|
||||
Rune rune
|
||||
Char string `orm:"size(50)"`
|
||||
Text string `orm:"type(text)"`
|
||||
JSON string `orm:"type(json);default({\"name\":\"json\"})"`
|
||||
@ -125,26 +129,21 @@ type Data struct {
|
||||
Time time.Time `orm:"type(time)"`
|
||||
Date time.Time `orm:"type(date)"`
|
||||
DateTime time.Time `orm:"column(datetime)"`
|
||||
Byte byte
|
||||
Rune rune
|
||||
Int int
|
||||
Int8 int8
|
||||
Uint uint
|
||||
Int16 int16
|
||||
Uint16 uint16
|
||||
Int32 int32
|
||||
Int64 int64
|
||||
Uint uint
|
||||
Uint8 uint8
|
||||
Uint16 uint16
|
||||
Uint32 uint32
|
||||
Uint64 uint64
|
||||
Float32 float32
|
||||
Uint64 uint64
|
||||
Float64 float64
|
||||
Decimal float64 `orm:"digits(8);decimals(4)"`
|
||||
}
|
||||
|
||||
type DataNull struct {
|
||||
ID int `orm:"column(id)"`
|
||||
Boolean bool `orm:"null"`
|
||||
Char string `orm:"null;size(50)"`
|
||||
Text string `orm:"null;type(text)"`
|
||||
JSON string `orm:"type(json);null"`
|
||||
@ -153,19 +152,20 @@ type DataNull struct {
|
||||
Date time.Time `orm:"null;type(date)"`
|
||||
DateTime time.Time `orm:"null;column(datetime)"`
|
||||
DateTimePrecision time.Time `orm:"null;type(datetime);precision(4)"`
|
||||
Boolean bool `orm:"null"`
|
||||
Byte byte `orm:"null"`
|
||||
Int8 int8 `orm:"null"`
|
||||
Uint8 uint8 `orm:"null"`
|
||||
Rune rune `orm:"null"`
|
||||
Int int `orm:"null"`
|
||||
Int8 int8 `orm:"null"`
|
||||
Uint uint `orm:"null"`
|
||||
Int16 int16 `orm:"null"`
|
||||
Uint16 uint16 `orm:"null"`
|
||||
Int32 int32 `orm:"null"`
|
||||
Int64 int64 `orm:"null"`
|
||||
Uint uint `orm:"null"`
|
||||
Uint8 uint8 `orm:"null"`
|
||||
Uint16 uint16 `orm:"null"`
|
||||
Uint32 uint32 `orm:"null"`
|
||||
Uint64 uint64 `orm:"null"`
|
||||
Float32 float32 `orm:"null"`
|
||||
Uint64 uint64 `orm:"null"`
|
||||
Float64 float64 `orm:"null"`
|
||||
Decimal float64 `orm:"digits(8);decimals(4);null"`
|
||||
NullString sql.NullString `orm:"null"`
|
||||
@ -215,21 +215,21 @@ type Float64 float64
|
||||
type DataCustom struct {
|
||||
ID int `orm:"column(id)"`
|
||||
Boolean Boolean
|
||||
Byte Byte
|
||||
Int8 Int8
|
||||
Uint8 Uint8
|
||||
Rune Rune
|
||||
Char string `orm:"size(50)"`
|
||||
Text string `orm:"type(text)"`
|
||||
Byte Byte
|
||||
Rune Rune
|
||||
Int Int
|
||||
Int8 Int8
|
||||
Uint Uint
|
||||
Int16 Int16
|
||||
Uint16 Uint16
|
||||
Int32 Int32
|
||||
Int64 Int64
|
||||
Uint Uint
|
||||
Uint8 Uint8
|
||||
Uint16 Uint16
|
||||
Uint32 Uint32
|
||||
Uint64 Uint64
|
||||
Float32 Float32
|
||||
Uint64 Uint64
|
||||
Float64 Float64
|
||||
Decimal Float64 `orm:"digits(8);decimals(4)"`
|
||||
}
|
||||
@ -278,7 +278,9 @@ type User struct {
|
||||
Password string `orm:"size(100)"`
|
||||
Status int16 `orm:"column(Status)"`
|
||||
IsStaff bool
|
||||
IsActive bool `orm:"default(true)"`
|
||||
IsActive bool `orm:"default(true)"`
|
||||
unexport bool `orm:"-"`
|
||||
unexportBool bool
|
||||
Created time.Time `orm:"auto_now_add;type(date)"`
|
||||
Updated time.Time `orm:"auto_now"`
|
||||
Profile *Profile `orm:"null;rel(one);on_delete(set_null)"`
|
||||
@ -287,8 +289,6 @@ type User struct {
|
||||
Nums int
|
||||
Langs SliceStringField `orm:"size(100)"`
|
||||
Extra JSONFieldTest `orm:"type(text)"`
|
||||
unexport bool `orm:"-"`
|
||||
unexportBool bool
|
||||
}
|
||||
|
||||
func (u *User) TableIndex() [][]string {
|
||||
|
||||
@ -51,24 +51,25 @@ func TestTagAutoWireBeanFactory_AutoWire(t *testing.T) {
|
||||
}
|
||||
|
||||
type ComplicateStruct struct {
|
||||
IntValue int `default:"12"`
|
||||
StrValue string `default:"hello, strValue"`
|
||||
Int8Value int8 `default:"8"`
|
||||
Int16Value int16 `default:"16"`
|
||||
Int32Value int32 `default:"32"`
|
||||
Int64Value int64 `default:"64"`
|
||||
BoolValue bool `default:"true"`
|
||||
Int8Value int8 `default:"8"`
|
||||
Uint8Value uint8 `default:"88"`
|
||||
|
||||
UintValue uint `default:"13"`
|
||||
Uint8Value uint8 `default:"88"`
|
||||
Int16Value int16 `default:"16"`
|
||||
Uint16Value uint16 `default:"1616"`
|
||||
Int32Value int32 `default:"32"`
|
||||
Uint32Value uint32 `default:"3232"`
|
||||
|
||||
IntValue int `default:"12"`
|
||||
UintValue uint `default:"13"`
|
||||
Int64Value int64 `default:"64"`
|
||||
Uint64Value uint64 `default:"6464"`
|
||||
|
||||
StrValue string `default:"hello, strValue"`
|
||||
|
||||
Float32Value float32 `default:"32.32"`
|
||||
Float64Value float64 `default:"64.64"`
|
||||
|
||||
BoolValue bool `default:"true"`
|
||||
|
||||
ignoreInt int `default:"11"`
|
||||
|
||||
TimeValue time.Time `default:"2018-02-03 12:13:14.000"`
|
||||
|
||||
@ -33,6 +33,11 @@ import (
|
||||
// Writes messages by lines limit, file size limit, or time frequency.
|
||||
type fileLogWriter struct {
|
||||
sync.RWMutex // write log order by order and atomic incr maxLinesCurLines and maxSizeCurSize
|
||||
|
||||
Rotate bool `json:"rotate"`
|
||||
Daily bool `json:"daily"`
|
||||
Hourly bool `json:"hourly"`
|
||||
|
||||
// The opened file
|
||||
Filename string `json:"filename"`
|
||||
fileWriter *os.File
|
||||
@ -49,19 +54,15 @@ type fileLogWriter struct {
|
||||
maxSizeCurSize int
|
||||
|
||||
// Rotate daily
|
||||
Daily bool `json:"daily"`
|
||||
MaxDays int64 `json:"maxdays"`
|
||||
dailyOpenDate int
|
||||
dailyOpenTime time.Time
|
||||
|
||||
// Rotate hourly
|
||||
Hourly bool `json:"hourly"`
|
||||
MaxHours int64 `json:"maxhours"`
|
||||
hourlyOpenDate int
|
||||
hourlyOpenTime time.Time
|
||||
|
||||
Rotate bool `json:"rotate"`
|
||||
|
||||
Level int `json:"level"`
|
||||
|
||||
Perm string `json:"perm"`
|
||||
|
||||
@ -112,17 +112,17 @@ func Register(name string, log newLoggerFunc) {
|
||||
// Can contain several providers and log message into all providers.
|
||||
type BeeLogger struct {
|
||||
lock sync.Mutex
|
||||
level int
|
||||
init bool
|
||||
enableFuncCallDepth bool
|
||||
loggerFuncCallDepth int
|
||||
enableFullFilePath bool
|
||||
asynchronous bool
|
||||
wg sync.WaitGroup
|
||||
level int
|
||||
loggerFuncCallDepth int
|
||||
prefix string
|
||||
msgChanLen int64
|
||||
msgChan chan *LogMsg
|
||||
signalChan chan string
|
||||
wg sync.WaitGroup
|
||||
outputs []*nameLogger
|
||||
globalFormatter string
|
||||
}
|
||||
|
||||
@ -39,46 +39,46 @@ type Config struct {
|
||||
AppName string // Application name
|
||||
RunMode string // Running Mode: dev | prod
|
||||
RouterCaseSensitive bool
|
||||
ServerName string
|
||||
RecoverPanic bool
|
||||
RecoverFunc func(*context.Context, *Config)
|
||||
CopyRequestBody bool
|
||||
EnableGzip bool
|
||||
EnableErrorsShow bool
|
||||
EnableErrorsRender bool
|
||||
ServerName string
|
||||
RecoverFunc func(*context.Context, *Config)
|
||||
// MaxMemory and MaxUploadSize are used to limit the request body
|
||||
// if the request is not uploading file, MaxMemory is the max size of request body
|
||||
// if the request is uploading file, MaxUploadSize is the max size of request body
|
||||
MaxMemory int64
|
||||
MaxUploadSize int64
|
||||
EnableErrorsShow bool
|
||||
EnableErrorsRender bool
|
||||
Listen Listen
|
||||
WebConfig WebConfig
|
||||
Log LogConfig
|
||||
MaxMemory int64
|
||||
MaxUploadSize int64
|
||||
Listen Listen
|
||||
WebConfig WebConfig
|
||||
Log LogConfig
|
||||
}
|
||||
|
||||
// Listen holds for http and https related config
|
||||
type Listen struct {
|
||||
Graceful bool // Graceful means use graceful module to start the server
|
||||
ServerTimeOut int64
|
||||
ListenTCP4 bool
|
||||
EnableHTTP bool
|
||||
HTTPAddr string
|
||||
HTTPPort int
|
||||
AutoTLS bool
|
||||
Domains []string
|
||||
TLSCacheDir string
|
||||
EnableHTTPS bool
|
||||
EnableMutualHTTPS bool
|
||||
EnableAdmin bool
|
||||
EnableFcgi bool
|
||||
EnableStdIo bool // EnableStdIo works with EnableFcgi Use FCGI via standard I/O
|
||||
ServerTimeOut int64
|
||||
HTTPAddr string
|
||||
HTTPPort int
|
||||
Domains []string
|
||||
TLSCacheDir string
|
||||
HTTPSAddr string
|
||||
HTTPSPort int
|
||||
HTTPSCertFile string
|
||||
HTTPSKeyFile string
|
||||
TrustCaFile string
|
||||
EnableAdmin bool
|
||||
AdminAddr string
|
||||
AdminPort int
|
||||
EnableFcgi bool
|
||||
EnableStdIo bool // EnableStdIo works with EnableFcgi Use FCGI via standard I/O
|
||||
ClientAuth int
|
||||
}
|
||||
|
||||
@ -86,9 +86,10 @@ type Listen struct {
|
||||
type WebConfig struct {
|
||||
AutoRender bool
|
||||
EnableDocs bool
|
||||
EnableXSRF bool
|
||||
DirectoryIndex bool
|
||||
FlashName string
|
||||
FlashSeparator string
|
||||
DirectoryIndex bool
|
||||
StaticDir map[string]string
|
||||
StaticExtensionsToGzip []string
|
||||
StaticCacheFileSize int
|
||||
@ -97,7 +98,6 @@ type WebConfig struct {
|
||||
TemplateRight string
|
||||
ViewsPath string
|
||||
CommentRouterPath string
|
||||
EnableXSRF bool
|
||||
XSRFKey string
|
||||
XSRFExpire int
|
||||
Session SessionConfig
|
||||
@ -106,26 +106,26 @@ type WebConfig struct {
|
||||
// SessionConfig holds session related config
|
||||
type SessionConfig struct {
|
||||
SessionOn bool
|
||||
SessionAutoSetCookie bool
|
||||
SessionDisableHTTPOnly bool // used to allow for cross domain cookies/javascript cookies.
|
||||
SessionEnableSidInHTTPHeader bool // enable store/get the sessionId into/from http headers
|
||||
SessionEnableSidInURLQuery bool // enable get the sessionId from Url Query params
|
||||
SessionProvider string
|
||||
SessionName string
|
||||
SessionGCMaxLifetime int64
|
||||
SessionProviderConfig string
|
||||
SessionCookieLifeTime int
|
||||
SessionAutoSetCookie bool
|
||||
SessionDomain string
|
||||
SessionDisableHTTPOnly bool // used to allow for cross domain cookies/javascript cookies.
|
||||
SessionEnableSidInHTTPHeader bool // enable store/get the sessionId into/from http headers
|
||||
SessionNameInHTTPHeader string
|
||||
SessionEnableSidInURLQuery bool // enable get the sessionId from Url Query params
|
||||
SessionCookieSameSite http.SameSite
|
||||
}
|
||||
|
||||
// LogConfig holds Log related config
|
||||
type LogConfig struct {
|
||||
AccessLogs bool
|
||||
EnableStaticLogs bool // log static files requests default: false
|
||||
AccessLogsFormat string // access log format: JSON_FORMAT, APACHE_FORMAT or empty string
|
||||
EnableStaticLogs bool // log static files requests default: false
|
||||
FileLineNum bool
|
||||
AccessLogsFormat string // access log format: JSON_FORMAT, APACHE_FORMAT or empty string
|
||||
Outputs map[string]string // Store Adaptor : config
|
||||
}
|
||||
|
||||
|
||||
@ -108,9 +108,9 @@ type Controller struct {
|
||||
EnableRender bool
|
||||
|
||||
// xsrf data
|
||||
EnableXSRF bool
|
||||
_xsrfToken string
|
||||
XSRFExpire int
|
||||
EnableXSRF bool
|
||||
|
||||
// session
|
||||
CruSession session.Store
|
||||
|
||||
@ -69,10 +69,10 @@ var (
|
||||
type Options struct {
|
||||
// If set, all origins are allowed.
|
||||
AllowAllOrigins bool
|
||||
// A list of allowed origins. Wild cards and FQDNs are supported.
|
||||
AllowOrigins []string
|
||||
// If set, allows to share auth credentials such as cookies.
|
||||
AllowCredentials bool
|
||||
// A list of allowed origins. Wild cards and FQDNs are supported.
|
||||
AllowOrigins []string
|
||||
// A list of allowed HTTP methods.
|
||||
AllowMethods []string
|
||||
// A list of allowed HTTP headers.
|
||||
|
||||
@ -150,8 +150,8 @@ type filterChainConfig struct {
|
||||
type ControllerRegister struct {
|
||||
routers map[string]*Tree
|
||||
enablePolicy bool
|
||||
policies map[string]*Tree
|
||||
enableFilter bool
|
||||
policies map[string]*Tree
|
||||
filters [FinishRouter + 1][]*FilterRouter
|
||||
pool sync.Pool
|
||||
|
||||
|
||||
@ -4,19 +4,19 @@ import "net/http"
|
||||
|
||||
// ManagerConfig define the session config
|
||||
type ManagerConfig struct {
|
||||
CookieName string `json:"cookieName"`
|
||||
EnableSetCookie bool `json:"enableSetCookie,omitempty"`
|
||||
Gclifetime int64 `json:"gclifetime"`
|
||||
Maxlifetime int64 `json:"maxLifetime"`
|
||||
DisableHTTPOnly bool `json:"disableHTTPOnly"`
|
||||
Secure bool `json:"secure"`
|
||||
EnableSidInHTTPHeader bool `json:"EnableSidInHTTPHeader"`
|
||||
EnableSidInURLQuery bool `json:"EnableSidInURLQuery"`
|
||||
CookieName string `json:"cookieName"`
|
||||
Gclifetime int64 `json:"gclifetime"`
|
||||
Maxlifetime int64 `json:"maxLifetime"`
|
||||
CookieLifeTime int `json:"cookieLifeTime"`
|
||||
ProviderConfig string `json:"providerConfig"`
|
||||
Domain string `json:"domain"`
|
||||
SessionIDLength int64 `json:"sessionIDLength"`
|
||||
EnableSidInHTTPHeader bool `json:"EnableSidInHTTPHeader"`
|
||||
SessionNameInHTTPHeader string `json:"SessionNameInHTTPHeader"`
|
||||
EnableSidInURLQuery bool `json:"EnableSidInURLQuery"`
|
||||
SessionIDPrefix string `json:"sessionIDPrefix"`
|
||||
CookieSameSite http.SameSite `json:"cookieSameSite"`
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user