V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  b00tyhunt3r  ›  全部回复第 4 页 / 共 15 页
回复总数  294
1  2  3  4  5  6  7  8  9  10 ... 15  
2020-12-14 10:40:02 +08:00
回复了 gzdaijie 创建的主题 Go 编程语言 欢迎入坑我的新项目: Go 语言高性能编程
@axex
一个 CPU connection 一个或者两个 goroutine? 为什么?

@sujin190
看下这个简单的 worker pool
'''
package main

import (
"fmt"
"time"
)
//睡 1 秒,然后把收到的数据乘 2 返回
func worker(id int, job <-chan int, ret chan<- int) {
for j := range job {
time.Sleep(time.Second)
ret <- j * 2
}
}



func main() {
//1000 个工作
const JOBNUM = 1000
jobchan := make(chan int, JOBNUM)
retchan := make(chan int, JOBNUM)

//开 1000 个 goroutine
for w := 1; w <= 1000; w++ {
go worker(w, jobchan, retchan)
}

//分发 1000 个工作
for j := 1; j <= JOBNUM; j++ {
jobchan <- j
}
close(jobchan)


//接受结果
for r := 1; r <= JOBNUM; r++ {
<-retchan
}
}
'''
如果说"每个 cpu 核心同时刻只能执行一个计算"
我的电脑有 12 核心。那么按理说我同时只能处理 12 个 goroutine,即 12 个 worker 不是吗
可实际上这 1000 个 goroutine 处理 1000 个工作(睡 1 秒),
总共只用了 1 秒, 说明这 1000 个 goroutine 是同时并行执行的
而不是每次并行处理 12 个,一共要睡( 1000/12 )= 83 秒

肯定是我哪里理解不对 望指点
@lithium4010
@bruce0
即使 10 万可以 那 100 万,1000 万, 1 billion 呢?
希望从原理上更好的理解这个问题
@zmqiang
但是比如我需要做 10 万条计算, 我不可能开 10 万个 Goroutine 吧
这时候怎么决定我需要开多少个 Goroutine 呢( and, 每个 Goroutine 分担多少条计算)
2020-11-29 16:45:59 +08:00
回复了 respect11 创建的主题 程序员 Mac 送去维修期间,工作有什么过度的方案吗?
啥意思 公司不给提供设备???
2020-11-28 18:57:21 +08:00
回复了 xxbutoo 创建的主题 Ubuntu ubuntu 装 go 真是噩梦啊
境外表示丝般顺滑
@ysmood 除了 poll 以外还有别的啥实现方法吗
2020-11-22 16:30:08 +08:00
回复了 okcdz 创建的主题 程序员 自己做了一个轻量级的 NoSQL 数据库
支持

想问下一般什么样的业务需要在客户端上安装一个小型数据库?
2020-11-22 14:30:04 +08:00
回复了 gaigechunfeng 创建的主题 程序员 mini 黑苹果主机的方案选型,大家来讨论下呢
2020-11-22 14:29:34 +08:00
回复了 gaigechunfeng 创建的主题 程序员 mini 黑苹果主机的方案选型,大家来讨论下呢
怪了我咋收不到你的 @
不说新开的 VSCODE 实例 D 点按拖动到新桌面,然后三指切换,然后再点选 A,B,C 这个过程其实非常繁琐
实际上你并没有回答我的问题。 讨论的作用域是多窗口方案。
如果新桌面还有另外 3 个打开的实例呢? 再外接一台显示器吗
2020-11-22 12:04:07 +08:00
回复了 felix021 创建的主题 程序员 实战: 150 行 Go 实现高性能 socks5 代理
马一下
2020-11-21 16:52:49 +08:00
回复了 gaigechunfeng 创建的主题 程序员 mini 黑苹果主机的方案选型,大家来讨论下呢
关于"win10 再怎么搞,触控和多窗口也达不到 mac os 的水平",

想问一下比如我屏幕左边运行着一个非最大化的 VScode 实例 A,同时右边开着 2 个非最大化的 Finder 文件夹浏览器 B 和 C,
然后我又开了一个 VScode 实例 D,最大化 D,于是 D 就把 A,B,C 全都遮盖住了,

请问这时我怎么快速单指*一键*切换到被遮盖住的 A 或者 B 或者 C ?
win10 对等操作很简单,鼠标左键单击下方任务栏 A 或 B 或 C
@chogath 非杠 但如果要追求性能的话我为什么要用 go😂
2020-11-18 14:21:26 +08:00
回复了 liyifei1218 创建的主题 Mac mini M1 Mac mini 在路上了
京东都能送国外了。。。?
2020-11-17 18:51:25 +08:00
回复了 clwater 创建的主题 程序员 独立开发了一个算法学习的平台, RobinAlgo, 欢迎大家使用
滋瓷
2020-11-17 13:01:19 +08:00
回复了 wmwmajie 创建的主题 Go 编程语言 go 有 能支持 tcp 和 udp 的游戏框架吗?
还有就是 go 有著名的 2 分钟 GC peak, 直观感受就是每两分钟卡顿一下。大型 MMO 应该很明显了
2020-11-17 12:56:50 +08:00
回复了 wmwmajie 创建的主题 Go 编程语言 go 有 能支持 tcp 和 udp 的游戏框架吗?
@wmwmajie
当有有差别了 没差别的话岂不是只要是编译语言性能都一样了

性能不够就是字面意思啊哪里没懂 语言都是有 IO 速度上限的
当然你要是回合制,或者没有物理效果,或者非商业个人作品啥的 go 应该可以了
www.toptal.com/back-end/server-side-io-performance-node-php-java-go
2020-11-17 10:15:33 +08:00
回复了 kidlj 创建的主题 Go 编程语言 要学 Go 的赶紧上车
@kidlj 🙏
2020-11-17 09:42:28 +08:00
回复了 kidlj 创建的主题 Go 编程语言 要学 Go 的赶紧上车
谢谢大熊弟,想问一下
“Go 的并发很简单,只有 Goroutine 和 channel 一种方式。官方出的那本书里讲解得非常清晰,必读。”
那本书是指?
1  2  3  4  5  6  7  8  9  10 ... 15  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4880 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.