mirror of
https://gitee.com/anod/open_agb_firm.git
synced 2025-05-06 05:44:11 +08:00
修改了一下append多个元素的代码,貌似对快慢没啥影响
This commit is contained in:
parent
4d952f6a82
commit
c0a10148b4
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user