V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  geebos  ›  全部回复第 9 页 / 共 14 页
回复总数  271
1  2  3  4  5  6  7  8  9  10 ... 14  
2021 年 5 月 16 日
回复了 tukon479 创建的主题 程序员 求杭漂租房建议
不差钱建议租得离公司近点,整租的话估计有点贵。不想折腾的话可以用平台,比如自如,不过有点贵就是了。实习我建议直接自如,省心一些。想自己找的话就提前过去住几天酒店然后自己到小区里去找,我记得阿里的实习生是可以报销 7 天的酒店费用的,不过没有找房经验我不建议这么搞。实习比较久的话,我建议先在平台上找个短租的租一个月,然后安定之后慢慢找,多去网上看看经验贴,如何看房、二房东、坑爹房东这些的。最后就是租房最好离公司近点,不然上下班体验极差。
每个类型都有一个对齐值,一般是类型所占内存大小。结构体也有个对齐值,就是结构体成员的对齐值的最大值。

在进行内存对齐的时候要满足以下要求:
- 结构体长度要能够整除结构体的对齐值
- 结构体中成员地址到结构体首地址的偏移量要能够整除该成员的对齐值

回到这个问题上来:
- short 的长度是 2 字节,所以对齐值也是 2 字节,偏移量为 0,所以不用处理
- int 的长度是 4 字节,但是偏移量是 2 字节(前面成员的所占长度),所以要将偏移量补到( 2+2 ) 4 字节
- long 的长度是 8 字节,偏移量是( 2+2+4 ) 8 字节,可以整除 8,,满足条件
- char 的长度是 1 字节,偏移量是( 2+2+4+8 ) 16 字节,满足条件
- string 的长度是 8 字节,偏移量是( 2+2+4+8+1 ) 17 字节,不满足条件,所以将偏移量补到( 17+7 ) 24 字节

最后总的长度是( 2+2+4+8+1+7+8 ) 32 字节,并且这个长度能够除以结构体的对齐值( 8 ),所以对齐之后的长度就是 32 字节。
2021 年 4 月 30 日
回复了 privapps 创建的主题 程序员 自己搭了个聊天室
这也太慢了,加载了 3 分钟
@myBatis 另外层数少也确实减少 IO 次数,因为比较的次数减少了 IO 次数自然会减少。
@myBatis 确实不太准确,B+树的内部节点只保存了指针数据都在叶子节点上, 所以 B+树的内部节点比 B 树要小一些,因此同样的页大小能够保存更多的内部节点,所以 IO 的次数会更少一些。但是你说的磁盘随机访问时间我没太搞懂。
2021 年 4 月 11 日
回复了 mirone 创建的主题 程序员 最近做的所见即所得的 Markdown 编辑器: Milkdown
感觉不错,收藏了。

提个小 bug:不能编辑和修改图片的链接。

还有就是支持样式自定义吗。
一般不会问原理吧,记住主要的特性和典型的应用场景就差不多了,当然想要流畅回答还是得把原理搞懂,但是我觉得这些原理能口述讲清楚还真有点难度。比如:

问:B+树的特点是什么
答:B+树的特点就是子节点多,层数少。子节点深度一致。所有子节点组成一个链表。
问:为啥这样搞
答:因为层数少减少 IO 次数。子节点深度一致,查询性能稳定。链表更好地支持范围查询。

我觉得这样基本够用了,可能再和 B 树或者红黑树比较一下,顺便问问红黑树。
2021 年 4 月 6 日
回复了 geebos 创建的主题 程序员 有线键盘转无线一般怎么操作
@xiaotianhu 我想自己动手改装,享受改装的过程。而且我这几天看了一些教程,发现不算工具(电烙铁这些)的话,总共的花费只需要 3-40 。现在已经淘宝下单了,等快递到了就开搞。
2021 年 4 月 5 日
回复了 geebos 创建的主题 程序员 有线键盘转无线一般怎么操作
@Lant248 秀哇,我现在打算用 ESP32 带 WiFi 和蓝牙的模块试试能不能 DIY,如果不行直接换新键盘(机智)。
2021 年 4 月 4 日
回复了 king888 创建的主题 程序员 所谓的不用写服务器代码了!老哥们是怎么看的?
看了一下文档,类似于把模板放到前端渲染了,真正的业务逻辑还是要通过云函数来实现。
2021 年 4 月 4 日
回复了 geebos 创建的主题 程序员 有线键盘转无线一般怎么操作
@hhyvs111 主要还是想折腾一下,现在看还是直接买新的算了
2021 年 3 月 16 日
回复了 magichacker 创建的主题 问与答 求助!最近 GitHub 间歇性连不上
深受其害,所以我在 v2rayN 的基础上加了个定时检测,每十分钟检测一次,自动切换到能访问 github 的代理。
@drunkdog 意思是防止使用者用来干违法的事牵扯到自己吗
@ww2000e 比如有人搞了个破解软件,加了这个声明可以做到法律上免责吗?就算没有盈利破解软件还是给软件公司造成损失了吧。
2021 年 3 月 10 日
回复了 yehx 创建的主题 Java 春招 Java 简历,求帮点评。
“了解数据库的引擎与相关事务”,如果我是面试官肯定要问一下事务,事务的实现,锁等等
2021 年 3 月 10 日
回复了 lxl1531 创建的主题 Python Python 的字符串拼接函数 join()是怎么实现的
@geebos 补充一下,不仅仅是内存分配的时间,还有数据复制的时间
2021 年 3 月 10 日
回复了 lxl1531 创建的主题 Python Python 的字符串拼接函数 join()是怎么实现的
for 循环慢是因为字符串在 python 里面是常量,每次创建一个新的字符串都要重新分配内存,所以使用 for 循环的话因为每次循环都要创建一个新的字符串,所以会花费很多时间在内存分配上。

如果自己实现的话,问题的关键就是如何避免重复分配内存。

可以遍历一遍字符串计算出需要的内存,一次分配好。或者像 #14 所说的每次把 buffer 翻倍,但是我觉得这样没必要,我们一般在所需内存不确定的时候才会使用这个方案,如果所需的内存是确定的话一次到位是更好地选择。
这个问题应该是 windows 的控制台默认编码是 gbk 的问题,改一下控制台编码就行。

实际你的结果已经没有问题了,只是包含有不能转成 gbk 编码的字符,所以在用 print 输出的时候会报错,保存到文件在看就是正常的了。

如果实在觉得膈应的话,可以用下面的代码把 gbk 不支持的字符全部过滤掉。

def encoding_transform(text:'str', target_encoding:'str')->str:
"""
将字符串转换成目标编码,不能被目标编码编码的字符全部舍弃
"""
if not isinstance(text, str):
return text

text_list = []
while True:
try:
text = text.encode(target_encoding).decode(target_encoding)
text_list.append(text)
break
except UnicodeEncodeError as e:
position = int(re.findall(r'position (\d+):', str(e))[0])
text_list.append(text[:position])
text = text[position+1:]
return ''.join(text_list)
2021 年 3 月 7 日
回复了 geebos 创建的主题 分享创造 闲来无事用 pyqt 写了个 windows 上的启动台
@liuxey 我任务栏是隐藏的,磁贴没那么方便
1  2  3  4  5  6  7  8  9  10 ... 14  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2869 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 13:05 · PVG 21:05 · LAX 06:05 · JFK 09:05
♥ Do have faith in what you're doing.