7
7
"fmt"
8
8
"io"
9
9
"reflect"
10
+ "runtime"
10
11
"text/template"
11
12
"time"
12
13
)
@@ -47,7 +48,9 @@ type metaData struct {
47
48
}
48
49
49
50
const (
50
- version = "0.4.1"
51
+ // Version is exported for other builds
52
+ Version = "0.4.1"
53
+
51
54
defaultMaxAllowedPacket = 4194304
52
55
)
53
56
@@ -113,9 +116,12 @@ const nullType = "NULL"
113
116
// Dump data using struct
114
117
func (data * Data ) Dump () error {
115
118
meta := metaData {
116
- DumpVersion : version ,
119
+ DumpVersion : Version ,
120
+ }
121
+
122
+ if data .MaxAllowedPacket == 0 {
123
+ data .MaxAllowedPacket = defaultMaxAllowedPacket
117
124
}
118
- data .initMaxPacketSize ()
119
125
120
126
if err := meta .updateServerVersion (data .Connection ); err != nil {
121
127
return err
@@ -191,17 +197,6 @@ func (data *Data) getTemplates() (err error) {
191
197
return
192
198
}
193
199
194
- func (data * Data ) initMaxPacketSize () {
195
- if data .MaxAllowedPacket <= 0 {
196
- data .MaxAllowedPacket = defaultMaxAllowedPacket
197
-
198
- var maxSize int
199
- if err := data .Connection .QueryRow ("SELECT @@global.max_allowed_packet;" ).Scan (& maxSize ); err == nil {
200
- data .MaxAllowedPacket = maxSize
201
- }
202
- }
203
- }
204
-
205
200
func (data * Data ) getTables () ([]string , error ) {
206
201
tables := make ([]string , 0 )
207
202
@@ -400,7 +395,17 @@ func (table *table) Stream() <-chan string {
400
395
insert .WriteString ("," )
401
396
}
402
397
b .WriteTo (& insert )
403
- b .Reset ()
398
+
399
+ // debug
400
+ var m runtime.MemStats
401
+ runtime .ReadMemStats (& m )
402
+ // For info on each, see: https://golang.org/pkg/runtime/#MemStats
403
+ fmt .Print ("\t Buffer = " , bToMiB (uint64 (insert .Len ())), " MiB" )
404
+ fmt .Print ("\t Capacity = " , bToMiB (uint64 (insert .Cap ())), " MiB" )
405
+ fmt .Print ("\t Alloc = " , bToMiB (m .Alloc ), " MiB" )
406
+ fmt .Print ("\t TotalAlloc = " , bToMiB (m .TotalAlloc ), " MiB" )
407
+ fmt .Print ("\t Sys = " , bToMiB (m .Sys ), " MiB" )
408
+ fmt .Print ("\t NumGC = " , m .NumGC , "\n " )
404
409
}
405
410
if insert .Len () != 0 {
406
411
insert .WriteString (";" )
@@ -409,3 +414,7 @@ func (table *table) Stream() <-chan string {
409
414
}()
410
415
return valueOut
411
416
}
417
+
418
+ func bToMiB (b uint64 ) uint64 {
419
+ return b / 1024 / 1024
420
+ }
0 commit comments