V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ClericPy  ›  全部回复第 108 页 / 共 133 页
回复总数  2648
1 ... 104  105  106  107  108  109  110  111  112  113 ... 133  
2019-10-23 15:05:29 +08:00
回复了 Achilless 创建的主题 Python 关于 py 的线程池,并发请求接口
requests 只是让代码写起来快, 跑起来想快还是得考虑其他的, 比如用 gevent 代替 threading, 比如用 aiohttp 代替 requests, aiohttp 的 qps 不开 uvloop 的情况下是 requests + threading 的三倍多, 虽然 golang 原生 net/http 是 requests 十几倍...

这个年代了, 协程的 CPU 利用率高, 状态切换开销小, 不用考虑并发限制(也可以手动干预限制), 很少考虑多线程竞态的锁关系, 学点也不吃亏
2019-10-23 15:02:01 +08:00
回复了 Achilless 创建的主题 Python 关于 py 的线程池,并发请求接口
class ThreadPoolExecutor(_base.Executor):

# Used to assign unique thread names when thread_name_prefix is not supplied.
_counter = itertools.count().__next__

def __init__(self, max_workers=None, thread_name_prefix='',
initializer=None, initargs=()):
"""Initializes a new ThreadPoolExecutor instance.

Args:
max_workers: The maximum number of threads that can be used to
execute the given calls.
thread_name_prefix: An optional name prefix to give our threads.
initializer: An callable used to initialize worker threads.
initargs: A tuple of arguments to pass to the initializer.
"""
if max_workers is None:
# Use this number because ThreadPoolExecutor is often
# used to overlap I/O instead of CPU work.
max_workers = (os.cpu_count() or 1) * 5


这里源码里都写了建议线程池大小了

对 Python 来说, 多线程并不会利用多核, 所以一堆线程是靠系统的不断切换来确定线程完成状态的, 切换的多了自然开销就大了, 性能损失也就大了

多进程也是一个道理, 你就俩核心的话, 不断切换来切换去, 那 CPU 大部分时间都在切换状态上, 根本没时间干活, 也会变慢

权威一点的搜 Google , 一个意思

https://www.google.com.hk/search?q=Python+best+thread+pool+size

https://stackoverflow.com/questions/42541893/maximum-pool-size-when-using-threadpool-python
之前试过不到期退租, 违约金是挺高, 管家直接建议我转租, 最后一分钱没多花...
2019-10-23 11:23:19 +08:00
回复了 Africa 创建的主题 设计 请问这个博客的字体是什么?
本来以为是钓鱼, 点进去发现, 我近视眼是不是好了...
特地下了个插件看了下

font-family (stack):
Arvo, "Helvetica Neue", Helvetica, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, "WenQuanYi Zen Hei Sharp", sans-serif
Font being rendered:
Arvo
72.7%
Microsoft YaHei
27.3%
2019-10-23 10:47:01 +08:00
回复了 redam 创建的主题 问与答 那些搞爬虫的调用别人的 API 或搜索结果违法吗
有那么几种数据碰了就犯法, 用户数据(不管是否隐私), 收费 /私有数据, 逆向客户端
2019-10-22 23:57:10 +08:00
回复了 xiaoming1992 创建的主题 程序员 买电脑要等双十一吗?
买笔记本双十一比平时活动一般会便宜两百, 不过我说的是我以前买的那俩七八千的, 再贵点的可能还会便宜多点

至于买散件, 你要每个都去比价? 这就更好估算了, 看看你花一两个小时比价值不值这两百就好了
@uyhyygyug1234 反爬听说过蜜罐藏毒的, 第一次见把自己毒死来灭蚊子的...
2019-10-22 21:06:02 +08:00
回复了 yixiugegegege 创建的主题 Python 求教,公司要重新做爬虫架构
聚焦爬虫常见的组件就是下载器, 解析器, 存储器
此外还得考虑调度器, 代理池, 日志系统那些
避免重复数据和压力过大, 可以在 解析器-存储器 以及 调度器-下载器 之间加上消息队列服务. 以上 4 或 5 个部件统一以后, 拆起来就容易了. 必要时候下载器和解析器之间也可以缓存原始 Response
代理池得维护一份, 毕竟有些不存在的网站也要采集, 还得避免限频反爬
日志系统做好分析, 方便报警和调试

爬虫多了确实难管理, 最好还是套框架重构(舍弃旧代码)
如果是 Windows, superfetch 服务和你说的有点关系, 简而言之就是热数据在内存留备份避免重新从硬盘 IO 进来
2019-10-22 20:51:51 +08:00
回复了 yixiugegegege 创建的主题 Python 求教,公司要重新做爬虫架构
@Trim21 那个 XXlab...
没自研能力的话, 直接套 Scrapy 或者 pyspider (貌似作者也在 V2) 也算是省心省力的, 那个前后端现成的 lab 因为源码没读过也没用过, 就不盲目推了, 不过看 demo 是挺好看的

有一次还看到个跑协程的框架, 名字记不起来了

PS:

前几天试了下 Python 并发能力, 访问 gin 在本地接口, 不知道是不是 aiohttp 有 C 加成的原因

3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]

Aiohttp (没有 uvloop)
async_test: 2000 / 2000, 100.0%, cost 1.4881 seconds, 1344.0 qps.

requests+threading

2000 / 2000, 100.0%, cost 4.695 seconds, 426.0 qps.

golang, net/http
2000 / 2000, 100.00 %, cost 0.33 seconds, 5990.95 qps.
2019-10-22 20:31:39 +08:00
回复了 yixiugegegege 创建的主题 Python 求教,公司要重新做爬虫架构
这东西说起来简单, 实现起来费了大劲了...

偷偷地说: 等那个人来吧
2019-10-22 17:32:03 +08:00
回复了 wusheng0 创建的主题 程序员 一到中午就心跳的很快?
心率问题就老老实实去医院, 这里都是段子手
2019-10-22 15:55:09 +08:00
回复了 Guidoo 创建的主题 问与答 各位 趴着午睡,疯狂打嗝怎么办?
原来这是病吗? 我还以为是正常情况呢, 调整座椅高度会缓解一点, 好几次趴着睡, 刚醒的时候不愿意起来, 就发现可以打一个好长好长好长的气出来, 然后又可以一直打一直打... 我还纳闷哪来的气
2019-10-22 15:43:21 +08:00
回复了 smallpython 创建的主题 Python Python 中如何查看一个函数都有什么参数
楼上除了 5 楼有点贴近, 其他都像混子啊...

前两天刚实现了一个自动把 function 转 UI 的, 正好用到了这方面的内省知识

首先最推荐的是 inspect.signature, 具体用法看文档

其次是 5 楼类似那个的 inspect.getfullargspec, 这个比 5 楼那个得到的更全面一点, 不过归类做的不如 signature 好
2019-10-22 13:30:59 +08:00
回复了 vjnjc 创建的主题 生活 最近加了个猎头,发现跟他聊聊天也挺有趣的
@vjnjc 水平一般, 能力有限, 再学点能恰饭的技能吧, 还是太菜了, 抗不了大项目

@zhangalong69 两句忠告, 1. 找个好友一起 2. 千万千万别碰修改器和特工这两大毒瘤, 虽然特工玩的时候还是蛮开心的
@laike9m 哈哈, V 站划水比例 1:9
另外, shiv 没试过打包 C lib 会不会跪, 理论上应该会凉
2019-10-22 12:37:54 +08:00
回复了 dxgfalcongbit 创建的主题 分享发现 发现自己能听到次声频段...
既然来了 V2EX, 是不是发上来看看能不能解码?
2019-10-22 12:14:43 +08:00
回复了 vjnjc 创建的主题 生活 最近加了个猎头,发现跟他聊聊天也挺有趣的
@interqhq 头四年挣的老本, 半年花了一半了... 赡养费+社保导致原计划一年休养生息减少到半年了...

没错, 我就是会老家避免猝死的
1 ... 104  105  106  107  108  109  110  111  112  113 ... 133  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5274 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 64ms · UTC 01:20 · PVG 09:20 · LAX 17:20 · JFK 20:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.