Skip to content

Commit 1d3a3d2

Browse files
joeybloggsjoeybloggs
authored andcommitted
Merge branch 'minor-perf-1' into v8
2 parents 7a080ad + 89d5a94 commit 1d3a3d2

File tree

6 files changed

+606
-497
lines changed

6 files changed

+606
-497
lines changed

README.md

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ Package validator
22
================
33
<img align="right" src="https://raw.githubusercontent.com/go-playground/validator/v8/logo.png">
44
[![Join the chat at https://gitter.im/bluesuncorp/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5-
![Project status](https://img.shields.io/badge/version-8.17.3-green.svg)
5+
![Project status](https://img.shields.io/badge/version-8.18.0-green.svg)
66
[![Build Status](https://semaphoreci.com/api/v1/projects/ec20115f-ef1b-4c7d-9393-cc76aba74eb4/530054/badge.svg)](https://semaphoreci.com/joeybloggs/validator)
77
[![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=v8&service=github)](https://coveralls.io/github/go-playground/validator?branch=v8)
8-
[![Go Report Card](http://goreportcard.com/badge/go-playground/validator)](http://goreportcard.com/report/go-playground/validator)
8+
[![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator)
99
[![GoDoc](https://godoc.org/gopkg.in/go-playground/validator.v8?status.svg)](https://godoc.org/gopkg.in/go-playground/validator.v8)
1010
![License](https://img.shields.io/dub/l/vibe-d.svg)
1111

@@ -310,36 +310,35 @@ Benchmarks
310310
------
311311
###### Run on MacBook Pro (Retina, 15-inch, Late 2013) 2.6 GHz Intel Core i7 16 GB 1600 MHz DDR3 using Go version go1.5.3 darwin/amd64
312312
```go
313-
go test -cpu=4 -bench=. -benchmem=true
314313
PASS
315-
BenchmarkFieldSuccess-4 10000000 167 ns/op 0 B/op 0 allocs/op
316-
BenchmarkFieldFailure-4 2000000 701 ns/op 432 B/op 4 allocs/op
317-
BenchmarkFieldDiveSuccess-4 500000 2937 ns/op 480 B/op 27 allocs/op
318-
BenchmarkFieldDiveFailure-4 500000 3536 ns/op 912 B/op 31 allocs/op
319-
BenchmarkFieldCustomTypeSuccess-4 5000000 341 ns/op 32 B/op 2 allocs/op
320-
BenchmarkFieldCustomTypeFailure-4 2000000 679 ns/op 432 B/op 4 allocs/op
321-
BenchmarkFieldOrTagSuccess-4 1000000 1157 ns/op 16 B/op 1 allocs/op
322-
BenchmarkFieldOrTagFailure-4 1000000 1109 ns/op 464 B/op 6 allocs/op
323-
BenchmarkStructLevelValidationSuccess-4 2000000 694 ns/op 176 B/op 6 allocs/op
324-
BenchmarkStructLevelValidationFailure-4 1000000 1311 ns/op 640 B/op 11 allocs/op
325-
BenchmarkStructSimpleCustomTypeSuccess-4 2000000 894 ns/op 80 B/op 5 allocs/op
326-
BenchmarkStructSimpleCustomTypeFailure-4 1000000 1496 ns/op 688 B/op 11 allocs/op
327-
BenchmarkStructPartialSuccess-4 1000000 1229 ns/op 384 B/op 10 allocs/op
328-
BenchmarkStructPartialFailure-4 1000000 1838 ns/op 832 B/op 15 allocs/op
329-
BenchmarkStructExceptSuccess-4 2000000 961 ns/op 336 B/op 7 allocs/op
330-
BenchmarkStructExceptFailure-4 1000000 1218 ns/op 384 B/op 10 allocs/op
331-
BenchmarkStructSimpleCrossFieldSuccess-4 2000000 954 ns/op 128 B/op 6 allocs/op
332-
BenchmarkStructSimpleCrossFieldFailure-4 1000000 1569 ns/op 592 B/op 11 allocs/op
333-
BenchmarkStructSimpleCrossStructCrossFieldSuccess-4 1000000 1588 ns/op 192 B/op 10 allocs/op
334-
BenchmarkStructSimpleCrossStructCrossFieldFailure-4 1000000 2217 ns/op 656 B/op 15 allocs/op
335-
BenchmarkStructSimpleSuccess-4 2000000 925 ns/op 48 B/op 3 allocs/op
336-
BenchmarkStructSimpleFailure-4 1000000 1650 ns/op 688 B/op 11 allocs/op
337-
BenchmarkStructSimpleSuccessParallel-4 5000000 261 ns/op 48 B/op 3 allocs/op
338-
BenchmarkStructSimpleFailureParallel-4 2000000 758 ns/op 688 B/op 11 allocs/op
339-
BenchmarkStructComplexSuccess-4 300000 5868 ns/op 544 B/op 32 allocs/op
340-
BenchmarkStructComplexFailure-4 200000 10767 ns/op 3912 B/op 77 allocs/op
341-
BenchmarkStructComplexSuccessParallel-4 1000000 1559 ns/op 544 B/op 32 allocs/op
342-
BenchmarkStructComplexFailureParallel-4 500000 3747 ns/op 3912 B/op 77 allocs
314+
BenchmarkFieldSuccess-8 20000000 118 ns/op 0 B/op 0 allocs/op
315+
BenchmarkFieldFailure-8 2000000 758 ns/op 432 B/op 4 allocs/op
316+
BenchmarkFieldDiveSuccess-8 500000 2471 ns/op 464 B/op 28 allocs/op
317+
BenchmarkFieldDiveFailure-8 500000 3172 ns/op 896 B/op 32 allocs/op
318+
BenchmarkFieldCustomTypeSuccess-8 5000000 300 ns/op 32 B/op 2 allocs/op
319+
BenchmarkFieldCustomTypeFailure-8 2000000 775 ns/op 432 B/op 4 allocs/op
320+
BenchmarkFieldOrTagSuccess-8 1000000 1122 ns/op 4 B/op 1 allocs/op
321+
BenchmarkFieldOrTagFailure-8 1000000 1167 ns/op 448 B/op 6 allocs/op
322+
BenchmarkStructLevelValidationSuccess-8 3000000 548 ns/op 160 B/op 5 allocs/op
323+
BenchmarkStructLevelValidationFailure-8 3000000 558 ns/op 160 B/op 5 allocs/op
324+
BenchmarkStructSimpleCustomTypeSuccess-8 2000000 623 ns/op 36 B/op 3 allocs/op
325+
BenchmarkStructSimpleCustomTypeFailure-8 1000000 1381 ns/op 640 B/op 9 allocs/op
326+
BenchmarkStructPartialSuccess-8 1000000 1036 ns/op 272 B/op 9 allocs/op
327+
BenchmarkStructPartialFailure-8 1000000 1734 ns/op 730 B/op 14 allocs/op
328+
BenchmarkStructExceptSuccess-8 2000000 888 ns/op 250 B/op 7 allocs/op
329+
BenchmarkStructExceptFailure-8 1000000 1036 ns/op 272 B/op 9 allocs/op
330+
BenchmarkStructSimpleCrossFieldSuccess-8 2000000 773 ns/op 80 B/op 4 allocs/op
331+
BenchmarkStructSimpleCrossFieldFailure-8 1000000 1487 ns/op 536 B/op 9 allocs/op
332+
BenchmarkStructSimpleCrossStructCrossFieldSuccess-8 1000000 1261 ns/op 112 B/op 7 allocs/op
333+
BenchmarkStructSimpleCrossStructCrossFieldFailure-8 1000000 2055 ns/op 576 B/op 12 allocs/op
334+
BenchmarkStructSimpleSuccess-8 3000000 519 ns/op 4 B/op 1 allocs/op
335+
BenchmarkStructSimpleFailure-8 1000000 1429 ns/op 640 B/op 9 allocs/op
336+
BenchmarkStructSimpleSuccessParallel-8 10000000 146 ns/op 4 B/op 1 allocs/op
337+
BenchmarkStructSimpleFailureParallel-8 2000000 551 ns/op 640 B/op 9 allocs/op
338+
BenchmarkStructComplexSuccess-8 500000 3269 ns/op 244 B/op 15 allocs/op
339+
BenchmarkStructComplexFailure-8 200000 8436 ns/op 3609 B/op 60 allocs/op
340+
BenchmarkStructComplexSuccessParallel-8 1000000 1024 ns/op 244 B/op 15 allocs/op
341+
BenchmarkStructComplexFailureParallel-8 500000 3536 ns/op 3609 B/op 60 allocs/op
343342
```
344343

345344
Complimentary Software

baked_in.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -271,11 +271,7 @@ func IsISBN13(v *Validate, topStruct reflect.Value, currentStructOrField reflect
271271
checksum += factor[i%2] * int32(s[i]-'0')
272272
}
273273

274-
if (int32(s[12]-'0'))-((10-(checksum%10))%10) == 0 {
275-
return true
276-
}
277-
278-
return false
274+
return (int32(s[12]-'0'))-((10-(checksum%10))%10) == 0
279275
}
280276

281277
// IsISBN10 is the validation function for validating if the field's value is a valid v10 ISBN.
@@ -301,11 +297,7 @@ func IsISBN10(v *Validate, topStruct reflect.Value, currentStructOrField reflect
301297
checksum += 10 * int32(s[9]-'0')
302298
}
303299

304-
if checksum%11 == 0 {
305-
return true
306-
}
307-
308-
return false
300+
return checksum%11 == 0
309301
}
310302

311303
// ExcludesRune is the validation function for validating that the field's value does not contain the rune specified withing the param.
@@ -1040,7 +1032,7 @@ func IsGt(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Val
10401032
return field.Float() > p
10411033
case reflect.Struct:
10421034

1043-
if field.Type() == timeType || field.Type() == timePtrType {
1035+
if fieldType == timeType || fieldType == timePtrType {
10441036

10451037
return field.Interface().(time.Time).After(time.Now().UTC())
10461038
}
@@ -1255,7 +1247,7 @@ func IsLt(v *Validate, topStruct reflect.Value, currentStructOrField reflect.Val
12551247

12561248
case reflect.Struct:
12571249

1258-
if field.Type() == timeType || field.Type() == timePtrType {
1250+
if fieldType == timeType || fieldType == timePtrType {
12591251

12601252
return field.Interface().(time.Time).Before(time.Now().UTC())
12611253
}

0 commit comments

Comments
 (0)