在我的服务器中,npm不缓存任何程序包,并且缓存目录为空。
#www@iZ2zefuufnen6rfx7c81u7Z:~/.npm$ nvm current
v9.4.0
# www@iZ2zefuufnen6rfx7c81u7Z:~/.npm$ npm config get cache
/home/www/.npm
# www@iZ2zefuufnen6rfx7c81u7Z:~/.npm$ ls
anonymous-cli-metrics.json _cacache _locks
Run Code Online (Sandbox Code Playgroud)
我的npm配置
www@iZ2zefuufnen6rfx7c81u7Z:~/.npm$ npm config ls
; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.6.0 node/v9.4.0 linux x64"
; node bin location = /home/www/.nvm/versions/node/v9.4.0/bin/node
; cwd = /home/www/.npm
; HOME = /home/www
; "npm config ls -l" to show all defaults.
Run Code Online (Sandbox Code Playgroud)
===== 更新
我发现在node@5.0 npm之后,将缓存数据存储在已配置的缓存中一个不透明的目录中,名为_cacache。https://docs.npmjs.com/cli/cache
www@iZ2zefuufnen6rfx7c81u7Z:~/.npm$ du -h --max-depth=1
56M ./_cacache
4.0K ./_locks
8.0K ./node-sass
56M .
Run Code Online (Sandbox Code Playgroud)
_cacache目录只有56MB
www@iZ2zefuufnen6rfx7c81u7Z:~/.npm$ …Run Code Online (Sandbox Code Playgroud) 我在 postgis 中遇到了 st_distance 函数的问题。我有三种计算距离的方法,但我不知道哪种方法最准确。
SELECT ST_Distance('POINT(115.25 39.26)'::geography, 'POINT(117.30 41.04)'::geography) as distance;
--result is 263753.911823565
SELECT ST_Distance_Sphere(ST_GeomFromText('POINT(115.25 39.26)',4326), ST_GeomFromText('POINT(117.30 41.04)',4326)) as distance;
--result is 263674.468686404
SELECT ST_Distance( ST_Transform(ST_GeomFromText('POINT(115.25 39.26)',4326),32650),ST_Transform(ST_GeomFromText('POINT(117.30 41.04)', 4326),32650)) as distance;
--result is 263669.651755417
Run Code Online (Sandbox Code Playgroud) 高并发下的一些混乱.
我用WRK测试杜松子酒,还有成才的不确定性.杜松子酒似乎并不安全.
package main
import (
"fmt"
"sync/atomic"
"github.com/gin-gonic/gin"
)
var count int64 = 0
func Test(c *gin.Context) {
atomic.AddInt64(&count, 1)
fmt.Println(count)
c.String(200, "success")
}
func main() {
gin.SetMode(gin.DebugMode)
router := gin.New()
router.GET("test", Test)
router.Run(":8080")
}
Run Code Online (Sandbox Code Playgroud)
测试shell代码
wrk -t50 -c50 -d 1s http://localhost:8080/test
Run Code Online (Sandbox Code Playgroud)
杜松子酒输出重复数据

即使打印代码是这样的.
countCopy := count
go func() {
fmt.Println(countCopy)
}()
Run Code Online (Sandbox Code Playgroud)
我也用ab测试吧,同样的问题.
======== ========更新与net/http相同,仍然有重复数据.
package main
import (
"fmt"
"net/http"
"sync/atomic"
)
var count int64 = 0
func Test(w http.ResponseWriter, req …Run Code Online (Sandbox Code Playgroud) geometry ×1
gis ×1
go ×1
gwt-gin ×1
logging ×1
node.js ×1
npm ×1
npm-install ×1
postgis ×1
postgresql ×1