修改了一下append多个元素的代码,貌似对快慢没啥影响

This commit is contained in:
a92126 2025-03-20 16:56:51 +08:00
parent 4d952f6a82
commit c0a10148b4

View File

@ -8,6 +8,7 @@ import (
"strings" "strings"
"bytes" "bytes"
"sort" "sort"
"time"
) )
type Serial struct { type Serial struct {
@ -225,9 +226,7 @@ func lade(locks []Lock, serial string, order string) Packed {
var ut_push = func(tr []byte) uint16 { var ut_push = func(tr []byte) uint16 {
off := len(strtable) off := len(strtable)
for _, v := range tr { strtable = append(strtable, tr...)
strtable = append(strtable, v)
}
strtable = append(strtable, 0) strtable = append(strtable, 0)
return uint16(off) return uint16(off)
} }
@ -238,7 +237,6 @@ func lade(locks []Lock, serial string, order string) Packed {
idx := find_index(strtable, []byte(tr)) idx := find_index(strtable, []byte(tr))
var off uint16 var off uint16
if idx < 0 { off = ut_push([]byte(tr)) } else { off = uint16(idx) } if idx < 0 { off = ut_push([]byte(tr)) } else { off = uint16(idx) }
//uint16(idx < 0 ? ut_push([]byte(tr)) : idx)
strcache[tr] = off strcache[tr] = off
return off return off
} }
@ -258,16 +256,12 @@ func lade(locks []Lock, serial string, order string) Packed {
} }
retval := uint16(len(idxtable)) retval := uint16(len(idxtable))
for _, v := range list { idxtable = append(idxtable, list...)
idxtable = append(idxtable, v)
}
return retval*2 return retval*2
} }
var add_command = func(list []uint32) uint32 { var add_command = func(list []uint32) uint32 {
retval := len(cmdtable) retval := len(cmdtable)
for _, v := range list { cmdtable = append(cmdtable, list...)
cmdtable = append(cmdtable, v)
}
return uint32(retval*4) return uint32(retval*4)
} }
@ -640,6 +634,7 @@ func format( cheats []Cheat ) []byte {
} }
func main() { func main() {
begin := time.Now()
list, err := loadlist() list, err := loadlist()
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
@ -647,7 +642,7 @@ func main() {
} }
roms := transform(list) roms := transform(list)
fmt.Println("all rom has", len(roms)) fmt.Println("all rom has", len(roms), time.Now().Sub(begin).Milliseconds())
idx := make(map[string][]Packed, 0) idx := make(map[string][]Packed, 0)
for _, rom := range roms { for _, rom := range roms {