我有一个带有net / http和julienschmidt / httprouter的Web服务器。我不知道为什么,但是如果我发布一个“大”数据,例如"PIXEL_COUNT=23"
中的几百个换行符,我的go服务器就会死掉。
我已经尝试使用goroutine将if (data == "red"):
print ("Displaying Red Pixels")
for i in range(PIXEL_COUNT):
pixels.set_pixel_rgb(i, 255, 0, 0)
pixels.show()
从主线程中排除,并尝试增加ulimit,但似乎不起作用
代码:
<textarea>
答案 0 :(得分:1)
在换行符上进行拆分(拆分的字符串的所有内容都是换行符)是很昂贵的操作。
target := strings.Split(Target[0], "\n")
如果要拆分换行符,请考虑改用bufio.Scanner
scanner := bufio.NewScanner(strings.NewReader("foo\nbar\nbaz"))
for scanner.Scan() {
fmt.Println(scanner.Text())
}
这是因为在您调用scan时,扫描程序会前进到下一个令牌,而strings.Split
会立即处理整个有效负载。