V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  CRVV  ›  全部回复第 11 页 / 共 28 页
回复总数  545
1 ... 7  8  9  10  11  12  13  14  15  16 ... 28  
2020-12-16 00:30:12 +08:00
回复了 Antigen 创建的主题 Python 请推荐一门能精确控制大量并发并行的编程语言或解决方案
需求不是这么提的,不能用 “尽最大可能” 这几个字。如果要用 “尽最大可能”,那你就需要明确项目预算或者类似的限制。
尽最大可能提高速度,那当然是直接把 Internet 停了,全给你一个人用,同时把光纤铺满地球,地表满了就打洞过去,如果嫌光在介质里的速度不够快还可以再开发个不用光纤的传输方式,这样才叫尽最大可能。

另外,所谓速度其实是两件事情,高吞吐量高和低延迟。DDOS 那样应该是高吞吐量但延迟无所谓。但楼主又说“慢一毫秒都无法接受”,这和 DDOS 完全是两码事了。
2020-12-09 12:08:54 +08:00
回复了 SystemLight 创建的主题 Vue.js 为什么感觉 Vue 的组件相对于 React 来说很少呢?
@abersheeran

> 论运营能力,youyuxi 比整个 V2EX 社区所有人加起来都强,不服的可以拎自己的项目出来看看影响力和知名度有没有 Vue 高。

自己的项目当然拎不出来。
但我觉得 Shadowsocks 的影响力和知名度远比 Vue 高
2020-12-08 20:47:43 +08:00
回复了 bigHave 创建的主题 Go 编程语言 uber-go/ratelimit 菜鸡求助
var counter int64

然后如果有多个线程执行下面这个循环,每次 break 都会给 counter 加一
for {
counter0 := atomic.LoadInt64(&counter)
if atomic.CompareAndSwap(&counter, counter0, counter+1) {
break
}
}

这种就是所谓的 lock-free,把它写成用 lock 的形式,再把那几个 if 去掉,这个函数其实就是

func (t *limiter) Take() time.Time {

mutex.Lock()

oldState := t.state
newState = state{}
now := t.clock.Now()
newState.last = now
newState.sleepFor += t.perRequest - now.Sub(oldState.last)

t.state = &newState
mutex.Unlock()

t.clock.Sleep(newState.sleepFor)
return newState.last
}

然后应该很好懂了
只有一种确定的顺序还是可以随意指定顺序?


1. 只有一种顺序
如果只有一种顺序,按这个顺序建一个索引,然后 Index Scan 就好了,一个用户回答过的问题通常不会很多吧。
跳转到第 x 页这种需求不可能快,不用考虑了。

如果在这种排序下,每个用户回答过的问题都没有聚集在一起,这个方法应该就够快了。
如果有聚集在一起,用 vance123 的方法

2. 顺序可以任意指定
2.1 给每一种顺序建一个索引,然后回到 1,这个通常不现实
2.2 如果不能给每种顺序建索引,就没有通用的 O(n) 以内的算法了。基本上都要 Sequential Scan 。当然有各种优化的方法,但这种事情依赖于非常具体的需求。
2020-12-08 10:57:26 +08:00
回复了 liufeicai 创建的主题 奇思妙想 健 康 码为什么不是动态的
这就是西安的玩法,所有地方都要扫码才让进。
喀什也有一套类似的,但是管得不严。
多数地方是楼主看到的这种,出一个二维码,工作人员看一眼就过去了。
还有的健康码只是一个像二维码一样的东西,但是有一部分被挡住了根本扫不出来。
2020-12-04 21:56:11 +08:00
回复了 uubooks 创建的主题 奇思妙想 乱想:什么时候能我们才能不需要这些乱七八糟的线
楼主的例子也分好几类的

1. 打印机之类的东西一直可以无线

2. 长距离的无线供电不太现实

要传递能量且不经过介质
可以用微波,但这样相当于你直接坐在微波炉里
可以用更短的电磁波,但这样等同于电阳能电池板,需要对准才行,不动的电器好像还可以。目前也没有那么高效的电阳能板
也可以用磁场电场之类的,但为了家庭供电开一个大磁场,不太合适吧

3. 显示器类的
DP2.0 有 80.00 Gbit/s 的带宽,无线传输达不到这个数。
问题在于要提高无线传输的带宽需要提高频率,但频率高了就需要对准,同上不动的东西还可以


所以 1 楼说的没错,要实现可用的像 Wi-Fi 一样方便的供电和 DP HDMI 级别带宽的数据传输,都是目前看起来不可能实现的事情。
2020-12-02 18:27:09 +08:00
回复了 tuding 创建的主题 奇思妙想 厕所明确贴了标识严禁吸烟
@lakin

咖啡因属于第二类精神药品,然后百度百科说第二类精神药品是毒品,但我不认同这个说法。
咖啡因被列入第二类精神药品,是因为它确实是精神药品且有医疗作用,但咖啡因的管制状态和海洛因冰毒大麻完全不一样,在京东淘宝都能买到纯咖啡因片。
尼古丁不属于精神药品,是因为它没有医疗作用,根本没人做这个东西来卖,自然没有管制的必要了。
抽烟挥发出来的气体里包含了有毒的尼古丁,但是咖啡不会挥发出来咖啡因。
喝咖啡确实会上瘾,但目前科学界的共识是适量饮用咖啡对人无害。

结论是咖啡和烟草完全不类似,不要相提并论。
2020-11-16 12:04:45 +08:00
回复了 ukipoi 创建的主题 程序员 请问下,比较简单的实现 0.5 到 2 之间的随机数的方法
这里的关键是楼主没想清楚自己要的是什么

给定的要求只有一个,>1 和 <1 的概率相等。
这样不能确定唯一的答案,所以下面给出了很多不同的解答。
给的解释又超出了楼主能解理的数学,所以估计现在更不懂了。

除了上面那个给定的要求,显然还存在一个要求是概率在某种程度上是均匀的,但均匀又存在不同的均匀。

比如把所有结果 round 到一个最接近的数,然后
0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.4 1.6 1.8 2.0 的概率相同
1/2.0 1/1.8 1/1.6 1/1.4 1/1.2 1/1.0 1.2/1 1.4/1 1.6/1 1.8/1 2.0/1 的概率相同
这两个也不一样,都可以被认为是均匀的

上面说的,其实不仅 “每一个 Y 出现的概率都是 1/K” 对浮点数是错的,“所有确定的 X 都是 1/K 的概率” 也是错的。
因为浮点数本身是不均匀的,但那个随机数是均匀的。

建议楼主放弃这个问题吧,需要补的课挺多的。
2020-11-16 11:41:14 +08:00
回复了 ukipoi 创建的主题 程序员 请问下,比较简单的实现 0.5 到 2 之间的随机数的方法
@ukipoi

首先你需要说清楚你在讨论实数还是在讨论 64 位浮点数

如果是实数,那么 “K 是-1 到 1 的所有数的总量” 这句话不成立,后面就不用讨论了。
不能设 K 是无限,然后把 K 当一个有限的数来做后续的讨论。

如果是 64 位浮点数,那么 “每一个 Y 出现的概率都是 1/K” 是错的。
比如
2 ^ 0.1000000000000002 和 2 ^ 0.10000000000000014 的结果都是 1.0717734625362934
https://www.postgresql.org/docs/current/datatype-character.html

网页内搜索 SQL standard
This somewhat bizarre exception is required by the SQL standard

通常都用 VARCHAR 的,没这个问题

或者上 PostgreSQL 全用 TEXT 完事。
2020-11-13 17:59:33 +08:00
回复了 ukipoi 创建的主题 程序员 请问下,比较简单的实现 0.5 到 2 之间的随机数的方法
如果只考虑数学问题(不考虑什么浮点数运算的事情),也不考虑边界([] 和 () 的差别),这个问题是这样的

已有一个 0-1 之间均匀分布的随机数 x,在上面加一个变换 f,变成 0.5-2 之间分布的随机数 y,要求 0.5-1 的概率和 1-2 的概率相等。问这个变换是什么。

先假定 f 在 0.5-2 之间是单调连续函数(不单调的 f 当然也可以有,先不考虑了)

那么,f(0.5) = 1 且 0.5 <= f(x) <= 2 的 f 都符合要求,比如 f(x) = x + 0.5

如果再增加一个条件,y 在 0.5 - 2 的整个区间内的概率密度都不为 0
那么只要 f(0) = 0.5, f(0.5) = 1, f(1) = 2,f 就满足要求,你随便假设比如 f(x) = ax^2 + bx + c 然后解 a b c 就好了。
如果假设 f(x) = 2^(ax+b) ,就得到 lsylsy2 给出的指数函数。
类似的还有很多符合条件的函数。

如果再增加一个条件,0.5-1 和 1-2 之间的概率密度分别都是常数,那么两边都是直线。
给定 f(0) = 0.5, f(0.5) = 1, f(1) = 2,结果是唯一的,就是那个分段函数。
2020-11-12 23:16:00 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
如果再回去看 geekbench 的测试结果,那 Intel 这个数字确实太惨了。

5950X 的单核性能比 9880H 快那么多
2020-11-12 23:11:03 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
@hjc4869

这个很确定,是 2400 的,不是原装的内存。
是我在买这台机器之前很久另买的 16Gx2
2020-11-12 22:59:11 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
@hjc4869

对的,我直接继续用 openssl 测了,在 AMD Ryzen 7 4700U 上

openssl speed -evp aes-256-xts -bytes 134217728 -multi 1
evp 6355342.75k

增加 -multi,大约到 -multi 4 的时候就会达到最大值了,有两倍多吧
evp 13651520.72k

这台机器的内存是 128bit 2400 DDR4 (38.4 GB/s)
那台 4770HQ 的机器是 128bit 1600 DDR3 (25.6 GB/s),最多能跑到 6776863.34k

所以 openssl 大约能跑到内存带宽 / 3
2020-11-12 22:17:26 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
@hjc4869

这玩意其实可以直接测,在我的机器上是这样的结果
都是 openssl 1.1.1h

Intel i7 4770HQ

openssl speed -evp aes-256-xts
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-256-xts 203022.96k 825995.49k 1748770.28k 2642286.01k 3120154.71k 3192675.31k

openssl speed -evp aes-256-xts -multi 4
evp 808941.94k 2783501.61k 6091693.65k 9758843.90k 10974879.74k 10624166.57k

四核处理器,单核 3 G/s 多核 10 G/s


AMD Ryzen 7 4700U

openssl speed -evp aes-256-xts
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-256-xts 515543.39k 1919414.38k 4367495.42k 6155646.63k 6991994.88k 7083595.09k

openssl speed -evp aes-256-xts -multi 8
evp 3404665.32k 12602658.88k 27869853.10k 36364921.17k 41717743.62k 41641061.03k

八核处理器,单核 7 G/s,多核 40 G/s

https://www.geekbench.com/doc/geekbench5-cpu-workloads.pdf
这里有说 geekbench 也直接用 AES 指令,说了用 4k block,说了 256 bits AES

我更怀疑 geekbench 的代码有问题了
2020-11-12 21:41:28 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
https://browser.geekbench.com/v5/cpu/compare/4653108?baseline=4648107
https://browser.geekbench.com/v5/cpu/compare/4642178?baseline=4648107

下面单项的第一个 AES-XTS 的单核和多核性能

苹果是 4.59 G/s 和 16.7 G/s
5950X 是 7.15 G/s 和 12.4 G/s
i9-9880H 是 1.82 G/s 和 8.41 G/s

3 个处理器都是 8 核的,最快的 16.7 G/s 肯定没到内存带宽。

为什么 5950X 的单核比 9880H 快那么多?
为什么 5950X 的多核速度还不到单核的 2 倍?

这数字要说是瞎编的我都信。
2020-11-10 17:55:04 +08:00
回复了 zuiluo 创建的主题 C++ 感觉自己写出来的 C++ 很 bullshit, 如何改进
在一个文件写到死

这个问题好办,学会手写 Makefile 就解决了。
2020-11-10 17:53:50 +08:00
回复了 HenrikC 创建的主题 程序员 面试的时候怎么判断面试者是不是速成的?
找一个求职者写过的东西,最好是有点技术含量的,从写这个东西的目的开始,问技术细节和每一个技术决策的理由或者权衡。
当然要能这样问问题并且能聊得下去,对面试官的要求也很高。已经高到很少见的水平了。
2020-11-03 16:01:30 +08:00
回复了 James369 创建的主题 程序员 有人用过国密算法吗,它有哪些好处?
@FlyingShark

你没有明白我的意思,我只是在名词解释。
我没说实现有后门,我也没说算法有后门,我也没说实现没有后门,我也没说算法没有后门。

重点是 RSA 和 RSA Security 这两个词,这是雷锋和雷锋塔的关系。
你不能说 RSA 怎么怎么样,要说 RSA Security,否则会带很强的误导性。
2020-11-03 10:52:10 +08:00
回复了 James369 创建的主题 程序员 有人用过国密算法吗,它有哪些好处?
@FlyingShark
这里的 RSA 是 RSA Security,是一家公司。
这家公司是发明 RSA 算法那三个人初创的。

NSA 的事情和 RSA 算法缺陷毫无关系。
1 ... 7  8  9  10  11  12  13  14  15  16 ... 28  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3385 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 91ms · UTC 10:59 · PVG 18:59 · LAX 02:59 · JFK 05:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.