V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sujin190  ›  全部回复第 35 页 / 共 118 页
回复总数  2355
1 ... 31  32  33  34  35  36  37  38  39  40 ... 118  
2021-11-08 18:00:20 +08:00
回复了 yuandj 创建的主题 Linux 高并发服务器 tcp 内核参数优化及对于连接池配置数量请教
我怎么感觉原因结果弄反了,你确定不是因为接口相应慢,所以导致创建了更多的连接么,对于 swoole 这样的应用来说,cpu 占用过高会导致每个请求存活时间变长,也即意味着有更多请求在同时处理,当然会创建更多数据库连接了

所以 swoole 这样的应用想要低延时平稳,其实是要依据后端数据库啥的处理延时限制并发的,也即并发到一定程度后并发的上升并不能提高 qps ,而是每个请求的延时增加
2021-11-08 12:08:15 +08:00
回复了 woshicixide 创建的主题 程序员 有用过阿里云的 polarDB 的吗?
似乎底层就是正常的 mysql ,你可以认为阿里云帮你做了个中间件,实际性能肯定依赖底层 mysql 吧
家用型普通路由器好多都是低功耗 cpu ,所以有独立网络芯片可以提供不错性能,做软路由的 cpu 本来就很强,就家用这点带宽根本不可能有 nat 瓶颈吧,纠结个啥,再说软路由和小米路由器这种本来用的系统就是一样的,那小米路由器这种不就是你说的软路由加硬件网络芯片啥了么?而商用型企业级路由器就不是一回事,没啥好比的吧
2021-11-05 13:42:34 +08:00
回复了 saviourdog 创建的主题 奇思妙想 有什么办法判断是否是脚本输入图形验证码登录的
图形验证码就是用来防脚本或者机器输入的,然后你问怎么知道你的图形验证码是否是脚本输入的,验证码表示死机了
2021-11-03 10:52:24 +08:00
回复了 WillingXyz 创建的主题 程序员 多个服务访问同一个数据库时,如何组织代码?
建议别这么拆,建立把能独立单独做 rpc 服务提供接口统一调用,比如下单、退换货、退款管理等等,其它的各自搞各自的,搞个统一的 dao 层啥的在 web 上需要经常调整需求的用处不大,而且很快你就会发现几个调用方重合度完全没想的那么高,然后又各种不注意的相互依赖慢慢出来了,最后完全失去了一开始分模块项目的目的,完全一堆大杂烩
2021-11-02 14:27:54 +08:00
回复了 evan0724 创建的主题 Go 编程语言 golang 一个函数返回不同的结构体有比较优雅的实现吗
@evan0724 #2 interface 本来就没要求你两个结构体字段一样啊,要的是都支持相同的操作
2021-11-02 14:20:52 +08:00
回复了 evan0724 创建的主题 Go 编程语言 golang 一个函数返回不同的结构体有比较优雅的实现吗
声明一个 interface 呗,MysqlConfig 和 MongoConfig 都实现这个接口不就好了
2021-11-01 19:54:04 +08:00
回复了 dzdh 创建的主题 问与答 无锁化编程就是不用事务吗
无锁化得是长流程分布式吧,都能用事务直接搞定了,还纠结要不要搞无锁化有点脱裤子放屁了吧,毫无意义的东西干嘛要做
2021-10-28 09:15:34 +08:00
回复了 sunnysab 创建的主题 问与答 收到学校要求下架学生服务相关的小程序
你直接存用户账户密码调学校系统,如果学校不同意小心按入侵计算机系统罪直接给你弄进去,他们要是较真还真不好说,所以还是想清楚
@O5oz6z3 #21 问题就在于解析器你能复制数据结构再搞一遍,但是那么多模块和扩展怎么办,你说的这种不仅有人想过还有人搞过,但是有个啥用,各种模块扩展都不兼容,那这样的 python 还有个啥用,现在 python 重要使用的场景中数学计算、web 、人工智能、爬虫,几乎都不受 GIL 影响,语言自身性能不高主要也不是 GIL 导致的,从这些来说搞掉 GIL 并不是一个十分重要的事情,从 Python 编译成执行的字节码来看,对比 GO 、Rust 这种的编译器优化水平,似乎 python 的编译器还是有改进的空间的,以及 jit 支持之类的显然收益更高吧
@hsfzxjy #13 不是可能存在,是必然是这样啊,除非你做个扩展完全不用 python 解释器的任何数据结构,否则就必须要用 GIL 保证安全,但是你不用任何 Python 解释器的数据结构,那 Python 也认不了你的扩展啊
@O5oz6z3 #3 大哥,这个又不是一个函数调完就完,各种数据结构,各种扩展都要加入支持,你用两个不同初始化方法有个啥用
设计复杂度啊,大哥,两个都要那就两个都性能底,还开关,想太多了,而且 Python 强大的 C 扩展,谁给你兼容,多线程编程本来就复杂,重新设计解释器干掉 gil 不是啥难事,但是要在通用场景下取得更好性能以及对现有模块和 C 扩展有良好兼容可就难了,而且以 Python 的主要使用场景来看,干不干掉 GIL 其实意义不大,反正 Python 做出的牛逼的东西像 tensorflow 都是 C 或者 C++扩展的本来就不受 GIL 限制,否则有 ironpython 和 jython 你看如何
2021-10-20 12:46:34 +08:00
回复了 monetto 创建的主题 Python Python 中 有 CAS 的实现吗
@dingyaguang117 好吧,纠正一下,数字加法指令会返回新的数字对象,所以保存这个字节码在多线程下这种情况就不是线程安全的了
2021-10-20 12:27:06 +08:00
回复了 monetto 创建的主题 Python Python 中 有 CAS 的实现吗
@dingyaguang117 其实 dict 迭代器生成,删除其实就一天字节码指令,线程安全的逻辑并没有改变,a=a+1 应该是三条指令,加载、计算和保存,事实上除了计算,前两条指令不会有副作用,加法因为内存结构是指针操作,这么看其实这个其实也没有并发安全问题,但是大多数情况下这个操作需要加锁,估计是后面大概率就是判断语句,而这两之间就不是线程安全的了吧
2021-10-20 12:18:15 +08:00
回复了 monetto 创建的主题 Python Python 中 有 CAS 的实现吗
@dingyaguang117 Python 解释器也需要用内存,也有数据结构啊,编译,创建类,模块导入,线程创建,文件操作,套接字这些底层也是用 GIL 保证线程安全的吧
2021-10-19 14:02:42 +08:00
回复了 monetto 创建的主题 Python Python 中 有 CAS 的实现吗
@monetto #39 Python 的 GIL 就是用来保证内部数据结构线程安全的,否则直接删掉 GIL 就是了啊,所以肯定必须要求是单条字节码完整执行完成才能切换,不可能像操作系统线程一样时间一到啥都不管就直接切换吧,否则 Python 内部自身的数据结构都有可能被破坏了,从这一点上来说,GIL 保证单条字节码的完整性,确实提供了大量线程安全的操作,比如赋值,不能说毫无关系吧
2021-10-19 13:58:08 +08:00
回复了 monetto 创建的主题 Python Python 中 有 CAS 的实现吗
def f():
...: a=1
...: b=a


2 0 LOAD_CONST 1 (1)
2 STORE_FAST 0 (a)

3 4 LOAD_FAST 0 (a)
6 STORE_FAST 1 (b)
8 LOAD_CONST 0 (None)

@junkun #26 一个赋值语句两条字节码组成,以 Python 的内存结构来说,其实就算被拆开其实越不会有副作用,所以认为是原子操作其实也没有啥问题
1 ... 31  32  33  34  35  36  37  38  39  40 ... 118  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1133 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 23:01 · PVG 07:01 · LAX 16:01 · JFK 19:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.