vue nginx运行
注:这里开始认为各位都会使用nginx
打包vue项目
1npm run build
测试打包的项目是否可以运行
1serve dist
可以正常运行
编译报错请移步到:renren-fast-vue@1.2.2 项目编译报错: build gulp
部署vue项目到nginx
接下来将renren-fast-vue 项目生成的dist 目录修改为:renren-fast-vue 并压缩为:renren-fast-vue.zip
复制renren-fast-vue.zip 到服务器
解压到:/usr/local/nginx/
vue项目的nginx配置文件不直接在nginx.conf中进行配置,将配置保存在/usr/local/nginx/conf/vhost/renren-fast-vue.conf
配置内容为:vi /usr/local/nginx/conf/vhost/renren-fast-vue.conf
1234567891011121314151617181920212223server { listen 7000; se ...
Go抢占式调度
2.6 抢占式调度
2.6.0 sysmon监听抢占时机
sysmon是一个Go里面的一个特殊的线程,不与任何P绑定,不参与调度,主要用于监控整个Go进程,主要有如下作用:
释放闲置超过5分钟的span物理内存
超过2分钟没有垃圾回收,强制启动垃圾回收
将长时间没有处理的netpoll结果添加到任务队列
向长时间执行的G任务发起抢占调度
收回因syscall而长时间阻塞的P
sysmon线程在runtime.main函数里面创建:
123456789101112func main() { ... if GOARCH != "wasm" { // no threads on wasm yet, so no sysmon // 启动sysmon的代码 // 在系统栈内生成一个新的M来启动sysmon atomic.Store(&sched.sysmonStarting, 1) systemstack(func() { newm(sysmon, nil, ...