Skip to content

Commit 64bd6e8

Browse files
优化内存
1 parent b5c0b4e commit 64bd6e8

1 file changed

Lines changed: 16 additions & 11 deletions

File tree

main.go

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55
"flag"
66
"fmt"
77
"log"
8+
"net/http"
9+
_ "net/http/pprof"
810
"os"
911
"os/signal"
1012
"sort"
@@ -33,6 +35,7 @@ var (
3335
)
3436

3537
func main() {
38+
go http.ListenAndServe(":9999", nil)
3639
var (
3740
listen string
3841
onlyID string
@@ -46,7 +49,7 @@ func main() {
4649
onlyPayloadS []string = []string{}
4750
)
4851
// 初始化启动参数
49-
logPrint("i", lang("TITLE")+" v1.0.0")
52+
logPrint("i", lang("TITLE")+" v1.0.1")
5053
flag.StringVar(&language, "l", "en", "Language ( en(default) | cn )")
5154
flag.StringVar(&listen, "p", "127.0.0.1:1883", "Define listening on IP:Port (default: 127.0.0.1:1883 )")
5255
flag.StringVar(&onlyID, "c", "", "Only allow these client IDs (comma separated)")
@@ -81,6 +84,7 @@ func main() {
8184
go func() {
8285
<-sigs
8386
done <- true
87+
close(sigs)
8488
}()
8589
// 初始化 MQTT 服务器
8690
logPrint("i", lang("BOOTING")+listen+" ...")
@@ -123,12 +127,12 @@ func main() {
123127
// 收到消息
124128
server.Events.OnMessage = func(cl events.Client, pk events.Packet) (pkx events.Packet, err error) {
125129
pkx = pk
126-
var clID string = cl.ID
127-
if onlyIdE && !in(onlyIdS, clID) {
130+
var clID *string = &cl.ID
131+
if onlyIdE && !in(&onlyIdS, clID) {
128132
return
129133
}
130-
var topic string = pkx.TopicName
131-
if onlyTopicE && !in(onlyTopicS, topic) {
134+
var topic *string = &pkx.TopicName
135+
if onlyTopicE && !in(&onlyTopicS, topic) {
132136
return
133137
}
134138
var payload string = string(pkx.Payload)
@@ -144,14 +148,15 @@ func main() {
144148
return
145149
}
146150
}
147-
logFileStr(false, clID, topic, payload)
148-
logPrint("M", fmt.Sprintf("%s: %s, %s: %s, %s: %s", lang("MESSAGE"), clID, lang("TOPIC"), topic, lang("PAYLOAD"), payload))
151+
logFileStr(false, *clID, *topic, payload)
152+
logPrint("M", fmt.Sprintf("%s: %s, %s: %s, %s: %s", lang("MESSAGE"), *clID, lang("TOPIC"), *topic, lang("PAYLOAD"), payload))
149153
return pk, nil
150154
}
151155
// 启动完毕
152156
logPrint("i", lang("BOOTOK"))
153157
// 处理结束信号
154158
<-done
159+
close(done)
155160
logPrint("X", lang("NEEDSTOP"))
156161
server.Close()
157162
if logFileE {
@@ -167,10 +172,10 @@ func main() {
167172
os.Exit(0)
168173
}
169174

170-
func in(strArr []string, str string) bool {
171-
sort.Strings(strArr)
172-
index := sort.SearchStrings(strArr, str)
173-
if index < len(strArr) && strArr[index] == str {
175+
func in(strArr *[]string, str *string) bool {
176+
sort.Strings(*strArr)
177+
index := sort.SearchStrings(*strArr, *str)
178+
if index < len(*strArr) && (*strArr)[index] == *str {
174179
return true
175180
}
176181
return false

0 commit comments

Comments
 (0)