V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lesismal  ›  全部回复第 41 页 / 共 56 页
回复总数  1101
1 ... 37  38  39  40  41  42  43  44  45  46 ... 56  
2021-11-11 00:22:06 +08:00
回复了 grimpil 创建的主题 Python 从 10 亿位数字里查找指定的数字,怎样才能快一些?
算了,忍不住还是调试了下,完整版的:
https://gist.github.com/lesismal/c4528eacc35db33f754ac2f8eb9e7634
2021-11-10 23:53:39 +08:00
回复了 grimpil 创建的主题 Python 从 10 亿位数字里查找指定的数字,怎样才能快一些?
#32 文件尾、打开写文件的好像都有问题,平时不写 py ,实在不熟悉,v 站发代码也确实难受,对齐好像都没了
2021-11-10 23:46:44 +08:00
回复了 grimpil 创建的主题 Python 从 10 亿位数字里查找指定的数字,怎样才能快一些?
用数据库存上也是慢,内存里缓存起来性能最好了,下面代码大概意思是 converter 先统计好索引到数组,然后把数组写入到文件,finder 读入文件初始化数组,然后再查找。没仔细调试,因为太烧机器了,有兴趣的同学可以完善下:

1. converter.py
```python
# -*- coding:utf-8 -*-
#!/usr/bin/python3

import datetime

class PIConverter:
def __init__(self, minNum=100000, maxNum=99999999):
self.minNum = minNum
self.maxNum = maxNum
self.positions = [0]*(self.maxNum+1-self.minNum)

def convert(self, srcFile, dstFile):
fsrc = open(srcFile,'r')
fsrc.read(2)
try:
lastStr = ""
readSize = 1024*8
currPos = 0
readed = 0

starttime = datetime.datetime.now()

offset = len(str(self.minNum)) - 1
while True:
s = fsrc.read(readSize)
s = lastStr + s # 这里可以再优化下
currPos -= len(lastStr)
for i in range(len(s)-8):
strLen = len(str(self.minNum))
while strLen <= len(str(self.maxNum)):
subs = s[i:i+strLen]
strLen += 1
num = int(subs)
index = num - self.minNum
if self.positions[index] == 0:
self.positions[index] = currPos + i

if len(s) == 0:
break

lastStr = s[len(s)-5:]
currPos += readSize
readed += readSize
if readed % (1024*1024*8) == 0:
print("total read: {}, time used: {}s".format(readed, (datetime.datetime.now() - starttime).seconds))

print("total read: {}, time used: {}s".format(readed, (datetime.datetime.now() - starttime).seconds))
print("done")

try:
fdst = open(dstFile,'rw+')
for index in range(self.positions):
fdst.write(str(index)+"\n")
finally:
fdst.close()
finally:
fsrc.close()

def find(self, n):
if n < self.minNum or n > 99999999:
return -1
return self.positions[n - self.minNum]

piConverter = PIConverter()

# 把已经统计出来的生成更小的文件
piConverter.convert("./pi-billion.txt", "./pi-position.txt")

# converter 初始化太慢了,所以最好还是先 piConverter.convert 把已经统计出来的生成更小的文件,finder.py 用该文件初始化和做查找
# print("141592:", piConverter.find(141592))
# print("415926:", piConverter.find(415926))
```

2. finder.py
```python
# -*- coding:utf-8 -*-
#!/usr/bin/python3

class PIFinder:
def __init__(self, fname, minNum=100000, maxNum=99999999):
self.minNum = minNum
self.maxNum = maxNum
self.positions = [0]*(self.maxNum+1-self.minNum)
f = open(fname,'r')
try:
i = 0
for line in f:
num = int(line)
self.positions[i] = num
finally:
f.close()

def find(self, n):
if n < self.minNum or n > 99999999:
return -1
return self.positions[n - self.minNum]

piFinder = PIFinder("./pi-position.txt")
print("141592:", piFinder.find(141592))
print("415926:", piFinder.find(415926))
```
是什么工作内容非要远程到其他员工电脑上?

日常见过的,即使安全相关的部门,也只是监控流量之类的、不至于非要日常频繁远程到其他员工电脑上操作吧

如果工作内容就是必须这样,是不是这个工作内容本身就恶心、应该一块喷喷老板而不是 /t/813228 楼主?就像是顾客投诉滴滴司机和美团送餐员,大家都不容易,反倒被资本家转移了矛盾互相斗

而且,如果确实必须要远程到其他同事电脑上,又不是瞎子,而且看之前也不知道啥是该看不该看、谁能保证啥也不看呢,不要用神的标准要求人。
2021-11-05 17:48:49 +08:00
回复了 MID 创建的主题 MacBook Pro M1 Max 对比 M1 Pro 电池续航对比的详细评测出来了
感情现实里净是一群不插电玩家啊
你们还给不给 wintel 家早泄选手活路了 :joy:
2021-11-02 12:22:59 +08:00
回复了 jiobanma 创建的主题 Apple Mac 下有什么还用的 ssh 工具吗
每次看到楼主头像这一屁股都觉得别扭
2021-10-31 01:32:37 +08:00
回复了 justaname 创建的主题 MacBook Pro 似乎 16 寸 Max 比 Pro 的续航要少很多呀
和妹子约会前以为可以嗨翻整夜,实际流程走下来也就那么春宵一刻——人们总是以为自己在某些事情上需要很长时间或很怎么样的配备,比如觉得生产力的 mbp 应该很轻薄、续航应该很久、刘海屏应该去掉释放更好的 UI 空间。

只有像我这样聪明的人,早就告别了单纯,对于 mbp 的抵触,完全是因为穷。
2021-10-11 11:06:35 +08:00
回复了 sickoo 创建的主题 哔哩哔哩 有必要再续费大会员吗?
B 站变了,但被资本裹挟后,哪个公司能真的保持清高呢?要想让它再变好,反倒是需要我们在它变的时候继续支持,直到有一天资本满意了再次放宽了情怀,才会再把那个 B 站还给大伙
2021-10-09 13:37:11 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
@XTTX 不客气。国庆结束了,好好写代码持续输出。
2021-10-06 20:42:06 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
#46 更正结尾处:确实心境还不够,少打了个“不”
2021-10-06 20:38:33 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
@XTTX 我已经解释过两次了,不是翻你黑史,而是那个帖子先有了印象所以加上这个帖,但凡你前面仔细看下我在说哪个点,我至于掰扯这么多、提那个帖子?因为你不把观点表达清楚、回复之前那个哥们也没 at 别人,回复我也不看我是在说哪个点,所以才会联想到你之前帖子、聊技术太随意了。

另外,也别上纲上线的弄好像我人身攻击你一样,这两个帖子你要是不那么随意,也不会有这么多互喷。我抱怨下就成了我故意攻击你?那你随意在先、并且我都回复了那么多似乎直到上一条你才看懂我在杠什么,那你就尊重别人了?麻烦你能不能讨论的时候认真点先?

再说,技术的事情,就事论事,该严谨的地方,怎么就不能杠精了?十几年前,或者至少八九年前,技术群还没那么多,好多人都是论坛上交流,一个技术问题,一群人争论得没完没了,随便盖出几十几百楼,就比如源码的事情,尤其是底层的一些、源码级别相关的,大家都非常重视,一丁点细微差别都可能是天差地别,经常都能杠得各自在各自电脑前面红耳赤,但是技术的问题,杠完了大家都更清楚了,也不会因为杠技术本身而觉得彼此伤害了。反倒是遇到随便拿来什么就信口开河满嘴跑火车聊技术的会让大家郁闷。技术的事情,从论坛到工作到开源,包括内核社区,即便不是三天两头,也是隔三差五就会有杠的事情发生,认真杠一些事情才争论的清楚,不信你去翻翻 linus 大神历史。

说我杠精行为就杠精行为吧,我承认,对于技术,我确实比较杠。
但是,杠精就不对了?专业领域的杠,别人还夸你认真钻研呢,如果都不杠了,高级的科学家、工程师、设计师各种估计都得绝种。都不杠了,小白错误言论满天飞,更多小白被带歪。技术不是娱乐圈,虽然拿娱乐心态聊技术不违法并且是你的自由,但既然你不认真了,也麻烦你不要怪罪别人认真对待技术的人。

如果你觉得就这么一句"standard lib"无关大雅无关紧要,那好,你继续随意吧。你可以自己回顾看下,这两个帖子你对技术的点是不是不够认真,这个帖子提到源码相关的,我猜测你没有怎么研究过。如果没研究过,就没必要随口就说关于它的事情、对更多小白会造成误导。

并且再强调一次,我是先看到的那个帖子然后才注意到这个帖子,不要以为别人有心情故意去黑你,你没那么重要,我也没那么重要。聊技术,就按技术论技术完事了,
我提那个帖子只是说你不认真,但是反过来给我扣的帽子是我搞人身攻击,想问下,到底谁在人身攻击谁?

这两天这个帖子说太多了,浪费了自己时间,也浪费了大家的时间。抱歉了各位,以后我尽量忍住、少回帖。
如果这种行为不好,站长封我我也认,确实心境还够,需要继续修炼学会忍耐与安静。
2021-10-06 11:18:27 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
回到技术问题上,我也赞成 named/naked 不好,go 源码里虽然也有这样用,但仍然也不建议大家这样用。

go 源码有很适合用来学习,建议有兴趣的同学多读读。
2021-10-06 10:31:39 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
1. “<<为什么不要用 naked return>>” —— 我没反驳过,我觉得这么说是 ok 的。
2. “standard libs 都用一种方式” —— 我反驳的是这个,因为源码里有这种方式,我引用的代码就是 go 源码

如果分不清我是在说 1 还是在说 2,那就停了吧。如果没读过 go 源码,甚至不知道 go 上面引用的就是 go 源码,那你随意吧。
2021-10-06 10:23:18 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
“这两段来自同一个你引述的 package, 什么叫双重混用。这种代码读起来就不是非常舒服。你可以举证为什么这种代码是最优雅的”
—— 所以你是真看不懂是吧。我上面说了,没有反驳这个是不是优雅。我针对的是,你说 std 里只有一种方式、std 里没有这种方式,而我引用的代码就是 std 里的、有这种方式。我上面都解释过了我也不觉得这样好,但不好跟没有是两码事,不要自己可能都没读过源码就随便说源码里没有。

“一言不合你就开始翻我的 post 记录,找找能人身攻击的东西,就差人肉了吧”
—— 上面也解释过了,是先看到你那个帖子里,又看到你这个帖子里,你对技术的观点太随意了。你可以再看下我 #29 楼中的第 2 条。

如果说前面是我自己以为你在回复我、算是我瞎,那后面回复了这些跳,解释了好几次,你没一次看懂了。另外,别提了另外个帖子就上纲上线的人身攻击转移话题,同为讨论技术的态度不严谨,要掰扯那正经点先把源码里有没有这种方式的事情扯清楚。我都强调过了那个就是源码、里面有这种方式、你都不正面回复又。反而我都强调过了我没说 named/naked 好,你也看到过了然后又来继续解释这个不好,我纠结它好不好了吗?
2021-10-06 00:14:49 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
@XTTX #31 又是说 “所有的 std libs 都有明确的 return”。我引用那几行代码就是 go 源码,你看看有没有 named 和 naked 。如果说我之前错以为你没 at 人那一层是在回复我,那是我理解错了。但是我感觉我之前说的啥你也没看懂
2021-10-06 00:11:35 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
源码都没怎么看,虽然不是什么过错,但是言之凿凿说源码这样子,对其他人会是一种误导。我是针对这个在杠。
我也早说过了,named 还是 naked,我自己都不用,也从没说过 named 或者 naked 是好东西。
2021-10-06 00:08:47 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
“<<为什么不要用 naked return>>”

“standard libs 都用一种方式”
这两句话不是一回事好吗,我 #11 是回复 #9 楼这句的,麻烦少年看下

如果你不知道我引用的那几行是 go 源码,那当我没说吧
2021-10-06 00:05:30 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
@XTTX 我针对的是你 #9 那句 “standard libs 都用一种方式是有原因的”,BTW 你看懂我引用的那几行代码是哪里的没。。。你仔细看下,那不是我自己代码,那个就是 go 源码,你所说的 std libs 不会是不包括 go 源码吧?
2021-10-05 21:05:52 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
@gogogo1203 #28 上一楼是回复 28 楼,写错了写成 20 。
补充一下,我没花多少时间故意翻源码打脸之类的,因为平时就经常源码,也正是因为以前就隔三差五在源码中看到类似的写法,所以看到 #9 说只用一种方式的时候,才会第一时间觉得不严谨。

今年完善了一份 poller 的框架,几年前比较火的一个老外的关于 golang websocket 百万连接的帖子和相关的 gobwas/ws 都是存在缺陷的方案,我这个实现了完整的异步流解析 tls/http1.x/websocket,能够解决 golang 1000k 问题。对比其他 golang 非阻塞 io 框架,他们都还没有支持这些,并且单就网络库部分的性能,基本高于其他库,易用性扩展性都更强。吹个牛逼说,目前全网独一份,不信你可以去看 evio/gev/gnet/easygo,还有字节的 netpoll,或者也去找找有没有其他库,做下对比,看看他们有没有支持这么多功能。
或者不必功能支持完整度,单就性能对比下:
https://github.com/lesismal/go-net-benchmark

这些花费了我很多时间,还在持续打磨,社交确实会消耗很多精力,所以才会有 #26 反思。你如果觉得我很闲,可以粗略看下我的几个库相关的,再看看我是不是很闲

当然,对于这个帖子消耗了这么多时间,确实是犯二了,我继续反思。
2021-10-05 20:49:47 +08:00
回复了 nanmu42 创建的主题 Go 编程语言 Go 语言错误处理的姿势
@gogogo1203 #20
1. 我的确不用这种方式,但是你能看懂 #10 是回复的这句不:“standard libs 都用一种方式是有原因的。”?我希望既然聊技术严谨一点,不要没怎么看过源码就随口说源码怎么样,或者其他类似的观点,因为大家信誓旦旦言之凿凿的观点,可能会对其他人造成误导。
2. 不是翻帖子,而是之前就看过那个帖子,感觉一楼可能还相对经验欠缺、讨论技术的时候自己没太搞懂知识点就随口说了,然后加上我上一条看到他说的这个观点,所以觉得应该回复一下,但是回复了几次,一楼都没有说清楚到底他说的 “standard libs 都用一种方式是有原因的。” 中的这种方式是指什么,或者也可能我理解能力太差、一楼已经在后续回复中讲清楚了但是我没 get 到,如果是这样,那各位可以指正,我虚心接受。
3. 我上面回复了帖子,对方在我下一楼没有 at 任何人,我也没太关注他们之前的讨论,而且我下一楼的回复中的内容也可以用来回复我的内容,并且语气带着轻浮,参考我本次回帖第 2 条中的出发点,所以觉得有必要多回复一些。
4. 你确认圣母这个词符合你用在这里的场景吗?

另外,如果本来帖子与我无关、我自己“强行对号入座”,那我对号入座跟阁下又有什么关系呢?而且我前面几次回复中也解释过了为啥我会回复好几段。你倒是也挺有时间得嘛,或者你可能也没仔细看我前面回的内容没分析我和一楼多次对话中的内容吧~

@XTTX 小伙子心态蛮好的,我喜欢,大过节的,不吵了,没必要,如果造成不适,我抱歉,请见谅。但该严谨还是建议严谨
1 ... 37  38  39  40  41  42  43  44  45  46 ... 56  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2551 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 15:05 · PVG 23:05 · LAX 08:05 · JFK 11:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.