35 Star 427 Fork 70

GVPdromara/carbon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.workflow
calendar
lang
tests
.editorconfig
.gitignore
.golangci.yml
LICENSE
README.cn.md
README.jp.md
README.md
boundary.go
boundary_bench_test.go
boundary_example_test.go
boundary_unit_test.go
calendar.go
calendar_bench_test.go
calendar_example_test.go
calendar_unit_test.go
carbon.go
carbon_bench_test.go
carbon_example_test.go
carbon_unit_test.go
comparer.go
comparer_bench_test.go
comparer_example_test.go
comparer_unit_test.go
constants.go
constellation.go
constellation_bench_test.go
constellation_example_test.go
constellation_unit_test.go
creator.go
creator_bench_test.go
creator_example_test.go
creator_unit_test.go
default.go
default_bench_test.go
default_example_test.go
default_unit_test.go
difference.go
difference_bench_test.go
difference_example_test.go
difference_unit_test.go
errors.go
extremum.go
extremum_bench_test.go
extremum_example_test.go
extremum_unit_test.go
frozen.go
frozen_bench_test.go
frozen_example_test.go
frozen_unit_test.go
getter.go
getter_bench_test.go
getter_example_test.go
getter_unit_test.go
go.mod
go.sum
gstar.jpg
gvp.jpg
helper.go
language.go
language_bench_test.go
language_example_test.go
language_unit_test.go
outputer.go
outputer_bench_test.go
outputer_example_test.go
outputer_unit_test.go
parser.go
parser_bench_test.go
parser_example_test.go
parser_unit_test.go
season.go
season_bench_test.go
season_example_test.go
season_unit_test.go
setter.go
setter_bench_test.go
setter_example_test.go
setter_unit_test.go
traveler.go
traveler_bench_test.go
traveler_example_test.go
traveler_unit_test.go
type_bench_test.go
type_builtin.go
type_carbon.go
type_example_test.go
type_format.go
type_layout.go
type_timestamp.go
type_unit_test.go
克隆/下载
type_bench_test.go 4.29 KB
一键复制 编辑 原始数据 按行查看 历史
kuafuRace 提交于 7天前 . v2.6.5
package carbon
import (
"encoding/json"
"testing"
)
func BenchmarkCarbonType_Scan(b *testing.B) {
c := Now()
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = c.Scan(c)
}
}
func BenchmarkCarbonType_Value(b *testing.B) {
c := Now()
b.ResetTimer()
for n := 0; n < b.N; n++ {
_, _ = c.Value()
}
}
func BenchmarkCarbonType_MarshalJSON(b *testing.B) {
var model carbonTypeModel
model.Carbon1 = *Parse("2020-08-05 13:14:15.999999999")
model.Carbon2 = Parse("2020-08-05 13:14:15.999999999")
b.ResetTimer()
for n := 0; n < b.N; n++ {
_, _ = json.Marshal(&model)
}
}
func BenchmarkCarbonType_UnmarshalJSON(b *testing.B) {
var model carbonTypeModel
value := `{"carbon1":"2020-08-05 13:14:15","carbon2":"2020-08-05 13:14:15"}`
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = json.Unmarshal([]byte(value), &model)
}
}
func BenchmarkCarbonType_String(b *testing.B) {
c := Now()
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = c.String()
}
}
func BenchmarkBuiltinType_Scan(b *testing.B) {
t := NewDateTime(Now())
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = t.Scan(Now())
}
}
func BenchmarkBuiltinType_Value(b *testing.B) {
t := NewDateTime(Now())
b.ResetTimer()
for n := 0; n < b.N; n++ {
_, _ = t.Value()
}
}
func BenchmarkBuiltinType_MarshalJSON(b *testing.B) {
var model builtinTypeModel
c := Parse("2020-08-05 13:14:15.999999999")
model.Date = *NewDate(c)
model.DateMilli = *NewDateMilli(c)
model.DateMicro = *NewDateMicro(c)
model.DateNano = *NewDateNano(c)
model.Time = *NewTime(c)
model.TimeMilli = *NewTimeMilli(c)
model.TimeMicro = *NewTimeMicro(c)
model.TimeNano = *NewTimeNano(c)
model.DateTime = *NewDateTime(c)
model.DateTimeMilli = *NewDateTimeMilli(c)
model.DateTimeMicro = *NewDateTimeMicro(c)
model.DateTimeNano = *NewDateTimeNano(c)
model.Timestamp = *NewTimestamp(c)
model.TimestampMilli = *NewTimestampMilli(c)
model.TimestampMicro = *NewTimestampMicro(c)
model.TimestampNano = *NewTimestampNano(c)
model.CreatedAt = NewDateTime(c)
model.UpdatedAt = NewDateTime(c)
model.DeletedAt = NewTimestamp(c)
b.ResetTimer()
for n := 0; n < b.N; n++ {
_, _ = json.Marshal(&model)
}
}
func BenchmarkBuiltinType_UnmarshalJSON(b *testing.B) {
var model builtinTypeModel
value := `{"date":"2020-08-05","date_milli":"2020-08-05.999","date_micro":"2020-08-05.999999","date_nano":"2020-08-05.999999999","time":"13:14:15","time_milli":"13:14:15.999","time_micro":"13:14:15.999999","time_nano":"13:14:15.999999999","date_time":"2020-08-05 13:14:15","date_time_milli":"2020-08-05 13:14:15.999","date_time_micro":"2020-08-05 13:14:15.999999","date_time_nano":"2020-08-05 13:14:15.999999999","created_at":"2020-08-05 13:14:15","updated_at":"2020-08-05 13:14:15","timestamp":1596633255,"timestamp_milli":1596633255999,"timestamp_micro":1596633255999999,"timestamp_nano":1596633255999999999,"deleted_at":1596633255}`
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = json.Unmarshal([]byte(value), &model)
}
}
func BenchmarkBuiltinType_String(b *testing.B) {
t := NewDateTime(Now())
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = t.String()
}
}
func BenchmarkCustomerType_Scan(b *testing.B) {
t := NewFormatType[iso8601Type](Parse("2020-08-05"))
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = t.Scan(Now())
}
}
func BenchmarkCustomerType_Value(b *testing.B) {
t := NewFormatType[iso8601Type](Parse("2020-08-05"))
b.ResetTimer()
for n := 0; n < b.N; n++ {
_, _ = t.Value()
}
}
func BenchmarkCustomerType_MarshalJSON(b *testing.B) {
var model CustomerTypeModel
c := Parse("2020-08-05 13:14:15.999999999")
model.Customer1 = *NewFormatType[iso8601Type](c)
model.Customer2 = *NewLayoutType[rfc3339Type](c)
model.CreatedAt = NewFormatType[iso8601Type](c)
model.UpdatedAt = NewLayoutType[rfc3339Type](c)
b.ResetTimer()
for n := 0; n < b.N; n++ {
_, _ = json.Marshal(&model)
}
}
func BenchmarkCustomerType_UnmarshalJSON(b *testing.B) {
var model CustomerTypeModel
value := `{"customer1":"2020-08-05T13:14:15+00:00","customer2":"2020-08-05T13:14:15Z","created_at":"2020-08-05T13:14:15+00:00","updated_at":"2020-08-05T13:14:15Z"}`
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = json.Unmarshal([]byte(value), &model)
}
}
func BenchmarkCustomerType_String(b *testing.B) {
t := NewFormatType[iso8601Type](Parse("2020-08-05"))
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = t.String()
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dromara/carbon.git
git@gitee.com:dromara/carbon.git
dromara
carbon
carbon
master

搜索帮助