我正在编写一个go程序,它将同时使用goroutine生成数千个http.Get
请求。这将是一个漫长的过程,我将添加一个管理功能,将列出有关该过程的某些统计信息。
我正在试图找出一种干净的方法来计算我每秒的请求数量。我想出了一些可能的解决方案:
存储一个计数器并有一个计时器,每隔几秒执行一次计算请求/秒,然后重置计数器。我担心以线程安全的方式执行此操作。如果我在访问此计数器之前使用互斥锁,我是否会破坏我的性能?
为每个成功的请求保留一个时间戳列表,然后我可以在列表中向后走,查看我关心的时间段内的所有时间戳。我担心这个列表会增长,但也许我可以使用循环缓冲区。
在我的Go计划中,我每秒计算http.Get
次请求的最佳方式是什么?