V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  2225377fjs  ›  全部回复第 4 页 / 共 18 页
回复总数  342
1  2  3  4  5  6  7  8  9  10 ... 18  
找个大专,技校啥的当个老师也不错啊,教教计算机网络,C 语言
2018-01-29 19:04:46 +08:00
回复了 Trent 创建的主题 酷工作 [成都] - [百词斩-招聘] 15k-35k(可上浮)
上面有人说面试要手写红黑树啊,好吓人,想了想,我周围的同事应该找不出一个能写出来的。厉害厉害
2018-01-23 15:33:15 +08:00
回复了 boywhp 创建的主题 Go 编程语言 感觉 go 语法好诡异
哈哈,上面有人说:“ golang 你看别人写的代码,比 python 还要清晰易懂”
这是真的么。。
2018-01-15 20:36:55 +08:00
回复了 zhc 创建的主题 北京 老婆想把老家的房产卖掉在北京买房
到这论坛问这问题,一大群还没毕业的人,指望他们能给你有什么有用的意见?

不说现在买房合不合适,就说几个现状:
现在银行票据需要贴点 5.3 个点左右,破 6 估计指日可待了,国债破 4 有一段时间了,国开债破 5,美国连续加息,注意,现在是 1 月份快到过年,基本是每一年资金政策最宽松的时候。中国外汇储备看着是在涨,其实实际数据惨不忍睹,借债撑外储。
天朝银行首套房房贷也开始上浮,不上浮那基准利率就是亏钱,不少银行停房贷。

欧洲经济强势复苏,日本复苏,美国复苏加息。
不知楼主是否是键盘侠,本人买车最想买的就是尚酷,最后考虑到家人还是买了中庸的 B 级车,要是真是楼主说的自私自利,老子打死不买这车,怎么也要上个小性能车。
2017-12-29 10:03:59 +08:00
回复了 stop9125 创建的主题 成都 理性讨论,成都还算宜居城市么
@hatw 半个成都土著,在杭州读书工作很多年了,见证了杭州空气质量从好到坏,再到现在有很大的改善,尤其是从去年开始,杭州空气质量已经改善了很多了,经常 200+的数据不知你是怎么得出来的结论。

反观成都的空气质量,我真是呵呵了,周边一堆的石化厂,当年 TM 还有头有脸的论证不会对空气造成污染,真是日了狗,老妈身体不好,还在考虑要不要把老妈接到杭州来生活。

成都说白了与当年苏州的情况很类似,产业压力,债务压力,干脆来一波炒房收割平民来扛鼎之后再说。


@stop9125 杭州还不错,相比于成都,空气质量,产业环境,人文素质(这个见仁见智吧,个人观点)都要好不少,不过现在两个城市都很尴尬啊,现在来的话,指不定都要当接盘侠了。


@Blackricky 在杭州的四川人很多啊,回家现在对我来说只有亲朋好友多的优势了。
2017-12-29 09:29:27 +08:00
回复了 stop9125 创建的主题 成都 理性讨论,成都还算宜居城市么
哎,可惜了,四川的民富程度本来就一般,现在还心高气傲要争一线,这两年老乡回流的钱差不多了,不知道接下来还能咋样。
成都本来就是库存的超级重灾区,说白了政府全力配合一起炒房,房价上去了,政府债务压力也轻了很多,这种好处对于成都城府吸引力太大了,政府配合,开发商配合,再加上水库炒房团配合,硬是把成都这个城市现在搞的有点乌烟瘴气的。
产业情况也就那样吧,并没有太大的改善,说白了还是得益于这两年巨量的老乡回流资金。
2017-12-15 22:16:25 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@guyskk0x0
```
关于隐患,先上一个特别简单的代码:
import multiprocessing, grequests; manager = multiprocessing.Manager()
他报错了,如果不是这段代码非常简单的只有一个引用,你需要多久要怎么发现是 gevent 的问题?
另外,这个问题你需要怎么修复?
```

只有你这种类似的的渣渣才会说上面的东西简单,我告诉你,我理解的上面的一套东西,以及没有贴出来的可能的业务上下文一点也不简单。

说我不懂装懂,我看你才是不懂装懂吧,渣渣。

你眼睛瞎啦,不知道把上面的帖子看完?


@NxnXgpuPSfsIT
另外,我是不是已经入门的程序员你还没有资格来评价,我从来不敢说自己精通了什么东西,我能做的就是把好用的东西在自己水平范围内把它用好。不敢随意撸轮子,更不敢泛泛的评价各种有一定知名度的轮子。

我一开始的回复就是因为在我看来你的框架没有任何存在意义,恕我直言,真的是没有任何意义。与其重复的撸这些轮子,不如好好去了解你觉得不行的 gevent,看看 gevent 实现你这轮子的功能是不是很简单,到底会有什么坑。而不是在这种公开环境下泛泛而谈的说 gevent 这不行,那也坑啥的,然后随便上网搜一下找一堆东西 copy 一下来证明你的观点,你不具备这个资格这么来评价 gevent,你一开始对 gevent 的评价给我的第一感觉就是半罐子水,所以需要怼一下才行。

看得出你很用心的维护你的框架,但是自己的框架不是通过随便泛泛的怼怼别的框架就能牛逼了。

自己前后都矛盾,一会普通程序员,一会又大局,细节,还撤出各种东西来背书,有毛用啊,还给协程下定义,非得要基于 yield yield from 这些生成器实现的功能都不齐全的环境才叫协程,那 greenlet,go 的协程,甚至包括 boost 库里面实现的协程他们都时啥东西啊。

Python 生成器的效率问题,我不想去证明了,gevent 的有一个协程 benchmark,你有精力的话可以去试试,不过好像生成器的要实现这种调度的 benchmark 逻辑都很麻烦。(忘记了是 greenlet 还是 gevent 的了,反正肯定有一个会有 10W 并发协程的调度 benchmark 代码)

不过你要是有精力实现出来,而且实测生成器的调度效率也不差的话,非常希望你能告诉我结果。
2017-12-15 21:14:12 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@guyskk0x0 几年前就已经完全一行一行的理解了 greenlet 的实现原理,然后你说我不了解协程,现在还迫于无赖,不得不转 go 来做一些业务支持,你要是说我不懂协程,我也没有办法了,我当年看 greenlet,gevent 的文章记录都贴在前面,麻烦你去翻翻,看看我到底懂不懂。

```
关于隐患,先上一个特别简单的代码:
import multiprocessing, grequests; manager = multiprocessing.Manager()
他报错了,如果不是这段代码非常简单的只有一个引用,你需要多久要怎么发现是 gevent 的问题?
另外,这个问题你需要怎么修复?
```
你认为我需要解释这种东西来证明我懂?而且我也不用 grequests,也不用 multiprocessing。


我现在维护的业务框架是一个分布式服务框架,gevent 环境能非常贴合的满足我们的需求,性能也非常的好,最近公司内部引入了 go 做一些尝试,比较尴尬的是,在类似于基于 mongodb 的登录,基于 redis 的排行榜这种比较简单的服务,在 pypy 跑下来,吞吐数据已经和 go 不相上下了,在 gevent 环境下很简单的就把这些库拿进来用就行了,而且有项目组使用的 redis 的 pub-sub 功能,还有用 kafka 的项目组,你觉得现在 Python 环境下还有什么框架能更适合开发这么一个业务环境?(不过即使是 pypy 在带复杂业务逻辑的情况下执行效率比起 go 还是差一些,而且 go 还有多线程支持,可以很简单就能实现一些并行任务的开发,这个 Python 环境下很难做啊,哎,仿佛已经看到了我们的 Python 框架的落幕日了)

既然要提到 multiprocessing,我不知道你们在协程环境下想用 multiprocessing 做啥,我告诉你一个我们的用例:
登录验证环境,需要对用户数据进行 基于 rsa 的签名,但是 rsa 太慢,导致即使在 pypy 环境下单进程吞吐也只有几百不到一千,部分原因也是因为 cryptograph 库退化掉了,所以 pypy 和 cpython 没啥差,会严重影响 servcie_gate 的响应,这种场景,想要提高单节点的吞吐只有用并行多线程或者 multiprocessing,不过 multiprocessing 其实也搓的一逼,延迟还大,我们最终的做法是用 cffi 加 boost 库包装了一个多线程扩展库,同时兼容 cpython 和 pypy,业务提交加密签名的任务到库,算完之后,通知 libev 的 loop 唤醒挂起的 greenlet 协程提交结果。这种情况,我们的 servcie_gate 即使全部跑授权签名,也能跑 1W+的吞吐,不过代价是进程 CPU 会跑到百分之好几百。

说了一个我遇到的业务场景,那么礼尚往来,你告诉我一个你遇到的类似的业务场景你是怎么处理的呢?既然你评价我不懂协程。你要是质疑这个业务环境的真实性,那确实没有办法,我还要吃饭,这些东西没法放出来,公司比较保守,不怎么搞开源,曾经有同事放了一点带公司内部邮箱的代码到 github 都被劝退了,太吓人,而且也深知水平有限,不敢大张旗鼓宣传开源自己的东西。

不过可以给你贴一部分代码: https://github.com/2225377fjs/weblogviewer 这个是很多年前做的一个业务系统,基于 web 页面实时 tail 服务器集群各个机器的 log 文件,server 部分是一个很稚嫩的服务框架原型,还在读书的时候模仿支付宝的那套框架写的东西,基本已经废弃了,不过一些 IO 层的东西现在一直沿用。


@NxnXgpuPSfsIT 你贴出来不就完了么,那么说明在 200 个这种情况下还是可以的嘛,我已经说过没有兴趣去了解你的框架的 API,以及他是怎么并发的,我能做的就是按照最通俗的 API 和原语去完成功能,另外不要秀代码了,没啥意义,这些语法糖根本不屑于去用,代码是写给别人看的,用最通俗的代码写给所有可能会跟你配合做业务,写代码的人,我们公司有大量的业务逻辑是用 python 写的,这种时候你就能体会那些看起来很简练的语法糖是多么让人讨厌了,宁愿让代码稍微长一些,也要让代码一眼就能看懂。

另外你很喜欢用 tornado 嘛,同样做 hello world 的 http 服务器,把 wsgi server 换成 gevent 的实现,吞吐还能往上涨额,你可以试试。

你最终还是没有回答我的问题啊,既然 gevent 很好很方便实现的功能,你自己再撸一个功能还远不如别人的轮子请问意义何在?仅仅是秀?

不要随便上网搜搜,然后贴一下,就说你看,gevent 这么多坑,这么多人说他挫,我看到是用 gevent 非常方便的能实现你框架展示的各种功能啊,至于说坑,你举例子说说你展示的这些功能在 gevent 的环境下实现能有什么坑啊?

你是公开环境推广自己库的人,也要经得起质疑吧?人家说没啥鸟用,你说别人自视甚高,这种环境下好像推广者的姿态更高一些吧。

不要纠结各种协程定义概念了,没有标准的概念,各种各样不同的实现,我所能看到的 go 实现的协程模型现在发展势头很好,大家接受度都很高,这种概念与 gevent 的模式非常相似。

我也不说什么半吊子框架了,收回这句话,是不太尊重,理性讨论。
2017-12-15 16:20:52 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@NxnXgpuPSfsIT 哈哈,按你说的我喷你的框架没啥鸟用是嚣张,那你有没有想过自己根本没有深入使用 gevent 就开始说 gevnet 这不行那不行,是不是你也不咋样啊,举出来的例子还全是网上随便搜出来的例子,你能举出你在实际使用功能中遇到了什么天坑的例子么?

这种随便网上搜一下,然后复制粘贴一下来证明自己的观点,还是那句,是不是有点太快餐了?

我是没法 show code,因为我知道自己几斤几两,不会轻易去撸轮子,也不喜欢到处贴自己的代码,但是我起码贴出了我自己的记录的博客文章,你可以去看看我够不够格评价 gevent,是不是对 gevent 足够了解呢?

我确实没有时间去了解你那我看来可能没什么用的库,因为我用 gevent 可以很简单的实现你的各种 sample。

即便 gevent 有各种问题,好歹人家好用啊,你的 sample 的例子我没看出来哪一个 gevent 实现不了啊。。而且 gevent 实现起来更简单更干净啊。你说我为啥还要花时间去了解你的库呢?

yes,我最开始就承认自己是普通程序员,所以哪个好用我就用哪个,被 node.js 现在各种半吊子库的环境弄的很恼火,所以很鄙视这种动不动自己就上手撸轮子的行为。

gevent 是有一些天坑,我们在实际使用中也遇到了坑,但是没有不能解决的问题,你敢保证你的库就没有 bug 了? 按你对的协程的理解和定义,是不是 go 的协程环境也是很不标准呢?毕竟 gevent 的原理机制和 go 非常类似.

我最开始的问题就是 gevent 能很好的实现你的库展示的各种功能,而且人家能提供的功能更丰富,为啥还要去撸一个轮子,因为这样才能体现自己牛逼?你说 gevent 有问题,那么你请告诉 gevent 实现你演示的各种功能,会遇到什么 bug ?更或者说会遇到什么不能解决的 bug ?

在实际生产环境下到底哪个库更堪用一些,你既然要上网公开环境的推广你自己的库,那么你起码你要有一定的理由告诉我这一开始就对你的库表示质疑的人吧,这种 gevent 有 a,b,c 等等问题,网上一搜,一罗列的回答,显然这没有啥说服力吧,这就是我一开始的问题。

而且对你这样回答:“ gevent 加 patch 永远也不知道会出什么问题,怎么和别的协程框架配合,你可以网上搜一下相关内容的吐槽”, 你应该说“你永远不知道会出什么问题”,还上网搜个毛啊,你都不知道出什么问题,搜出来的都是跟你一样的,有何用。
2017-12-15 12:59:43 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@NxnXgpuPSfsIT 或者说我的测试有误,不知道你的库的并发是怎么弄,也不知道你的库怎么弄 join 这种类似的原语,你可以按照你自己的逻辑去测试上面类似的业务,
并发同步访问 www.ccb.com N 次就行,看看耗时。(暂时没空去研究你的库怎么做这些功能)
2017-12-15 12:51:34 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@NxnXgpuPSfsIT
@xin053

我说他是 翔一样的性能,你不信,随便测一下,下面两段代码自己看看输出吧:

import trip
num = 0
import time
before = time.time()
test_time = 200
all_length = 0

def main():
global num
global all_length

r = yield trip.get('http://www.ccb.com/')
num += 1
all_length += len(r.content)
if num == test_time:
after = time.time()
print after - before
print "all length :" , all_length

for _ in xrange(test_time):
trip.run(main)

out:
12.0239999294
all length : 55200


-------------------------------------------
num = 0
import time
before = time.time()
test_time = 200
all_length = 0



import gevent.monkey
gevent.monkey.patch_all()
import gevent

import requests
threads = []


def _task():
global all_length
r = requests.request("GET", "http://www.ccb.com/")
all_length += len(r.content)

for _ in xrange(test_time):
threads.append(gevent.spawn(_task))

for t in threads:
t.join()

print time.time() - before
print "all length :", all_length

out:
0.721999883652
all length : 55200
--------------------------------------------------------------

所以我说是翔一样的性能没有冤枉它吧,或者说只是你这个库的性能是这样的而已。
2017-12-15 11:56:25 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@xin053
@NxnXgpuPSfsIT

不好意思,我们公司内部服务框架不开源,你们还是自娱自乐自己的撸自己的野路子轮子吧。

如果我说我们之前做服务框架的时候,几人完全阅读掌握了 greenlet 源码及其原理,libev,完全掌握了 gevent 的协程调度模型以及各种实现原理,而且我们内部对 gevent 的协程调度做了很多 hook,这样你觉得我有资格评价 gevent 不?

正是有这个底气才敢出来说,你以为随便乱说的?
贴几篇当年学习 greenlet 与 gevent 时候做的记录:

http://blog.csdn.net/fjslovejhl/article/details/38824963
http://blog.csdn.net/fjslovejhl/article/details/45956339
http://blog.csdn.net/fjslovejhl/article/details/39153861

知道自己水平不行,所以用好现有的轮子就好了,有问题自己就去解决,我有自知之明,不敢随便撸轮子。

“另外对于 Gevent,我想你是真的没有遇到过项目出 bug 是因为 Gevent 替换了底层库造成的,你是不懂这种事情有多坑。”
别自己 yy,好不
2017-12-15 09:11:31 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
所以需要非基于 gevent 的重新实现:
* 他不会给程序埋下无法发现的隐患
* 他使用了更好的协程习惯
* 他每一个方法都有保障,不会充满了不可知

这都是你自己说的吧。。。。。

引经据典这么多,看起来你不是读书太多了就是读书太少了,好多我看还是直接 copy 网上的文章吧,这么快餐。

看起来你就是这个库的作者吧,也是呵呵了。。。

“反观 gevent,kafka 的支持我并不认可 Github 上那个仅有 11 Star 长久未更新的项目,rabbitmq、zookeeper 之流更是不堪。 “

你知道用的是哪个库么?自己都不清楚就开始胡说,还更是“不堪”,一会说自己是普通程序员,一会又自以为是的指点江山。

还要跟你证明其他 Python 其他协程方案效率不行,你自己去证明吧。

redis,mongodb,rabbitmq,zookeeper,etcd,requests,mysql 这些系统的相关库我们在生产环境跑的好好的,还有不少服务节点是跑在 pypy 下的,最开始想喷的就是,不要不了解情况就开始说人家这不好,那也不好,然后自己撸一个自以为是的半吊子的框架出来,Node.js 环境下就是这种太多了,各种各样的半吊子框架。

普通程序员,既要谈大局,还要谈细节,你让我很不懂啊。
2017-12-14 20:45:00 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@NxnXgpuPSfsIT 既然你回答了这么多,那我也得回一下才行啦,

gevent 最大的一个优势就是可以与很多现有库兼容,api 也非常干净,性能也是 python 环境下最好的了,到你这里却变成了一个劣势,明明 gevent 自己就是一个协程库却还要去兼容别的协程库,这是什么逻辑?

另外 async 就不丑了?看看 go 的设计,与 gevent 的思路非常相似,这才是好用的方案,有优雅的实现不用,要用蹩脚的实现,也是醉了。

大家都是普通程序员,不更应该去学习掌握好用开源库,优点被你说成缺点,你确定你很了解 gevent,都还没有了解掌握就说这个东西的缺点是啥,然后去造一个自己心目中好用的轮子,这种思路不对吧?
难道普通就要去造轮子?造的轮子还不好用。

既然你说这框架的优点是与别的库配合起来方便,那么我就问一个问题,如何在这个库的协程并发环境下方便的访问 mongodb,访问 mysql,访问 redis,访问 kafka,rabbitmq,zookeeper 等常用的外部系统?既然都是协程了,那么肯定是要同步的 API 方式吧。我看好像不方便吧,那你再去看看 gevent 的环境下这些功能是怎么实现的?

这个问题解决了就更容易回答这两个库谁的实用性更好了吧。

最后,协程并发最大的优势是效率非常高,所以才能在很多环境下碾压线程并发,但是 Python 生成器翔一样的性能,估计也就只剩下了包装同步访问这一个作用了吧。
2017-12-14 17:57:44 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
@NxnXgpuPSfsIT 呵呵了,各种关键字修饰,这种看起来比写起来还蛋疼的东西有何用,gevent 本身就是一个协程框架,为啥还要与别的协程框架配合? patch 之后可以兼容绝大多数 python 的库,什么 Python 环境下别的协程框架能实现?
有人吐槽说明有人用啊。
有问题不应该首先要解决问题么,难道你认为这半吊子框架能比的上 Gevent ?


“而协程代码就是有 yield 和 yield from 的”。。。呵呵,呵呵,这是你定义的么。?
2017-12-14 17:07:32 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python Trip: 协程 Requests 实战,获取免费代理
实在看不懂这个意义何在,代码用法写起来也不是很干净。
gevent 的 patch 之后,requests 直接拿来用就好了。。API 更简洁,性能也很好。
2017-11-14 11:54:35 +08:00
回复了 LeoNG 创建的主题 问与答 贷款不还有什么后果吗?
大多网贷上不了征信
1  2  3  4  5  6  7  8  9  10 ... 18  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1803 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 00:23 · PVG 08:23 · LAX 17:23 · JFK 20:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.