由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - go很牛啊。这个10ms 非常快了。
相关主题
这次node把python也给干了谁能给科普一下python是怎么用的?
Django这个framework怎样?比较spring-boot 和 node.js
关于ruby和rails一点疑惑Python至少还能管3年
Django怎么学学python的一点小感觉哈
关于 Python DevOps 的几个问题Python Concurrency 主流是用啥
full stack python to clone google plus like website有没有c 或者 c++ 做的 web server Framework?
python + django 2天搞定。请教大牛们这个系统怎么设计
python question?找python大牛co-founder
相关话题的讨论汇总
话题: go话题: python话题: repustate话题: java话题: c++
进入Programming版参与讨论
1 (共1页)
d******e
发帖数: 2265
1
Repustate向世界各地的企业和组织提供文本分析服务。随着公司的发展,他们每天处
理的文本段数量从5亿增加到10亿,其中包括Tweet、新闻文章、博客评论、用户反馈等
。大规模的文本分析非常困难,因为很少会出现两段文本完全相同的情况,所以无法利
用缓存来提高效率。不过,它可以将大段的文本分成多个句子,然后并发分析每个句子
。近日,Repustate官方博客发表了一篇博文,介绍其API的演进过程。
Repustate API的第一个版本是用Django编写的。他们构建了一个原型,并以此为基础
推出了他们的服务。但每个Django请求/响应周期的开销太大。随着API访问量增加,可
靠性问题凸显,使用Amazon服务的成本也大大增加。于是,他们开始寻找一种Python代
替方案,并选择了Flask。Flask几乎是现成的API,而且是轻量级的。不过,他们稍后
又发现了Falcon。他们非常喜欢这个框架,因为它使用Cython进行了优化,速度比
Django要快许多,而且它还遵循简洁REST原则。事实证明,Falcon是一个很好的补救方
案。Repustate的平均响应时间缩短了,故障和支持问题的数量也降下来了。
但即便如此,Repustate的性能仍然不能满足日益增长的需求。尤其是并发,一直是
Python的痛处。而且,他们用的是Python 2.7,还没有使用Python 3中的asyncio包。
但实际上,即使用了,也还是要担心GIL的问题。并且,Falcon无法实现自托管部署。
Python无法像Java或C那样打包,然后分发。而他们的许多客户需要在自己的网络中运
行Repustate,他们只能为这些客户提供一个部署了整个技术栈的虚拟应用。该虚拟应
用既可以用于VMware,也可以用于Virtual Box。这是个可行的方案,但很笨重,而且
更新和支持困难。所以,他们希望能够仅仅提供一个可以安装的二进制文件。
之所以选择Go,是因为Go满足了他们所有的要求:
比Python快
可以编译成单个的二进制文件
可以部署到任何操作系统
容易实现并发
而且,Go测试套件的布局看上去比他们的nose测试要简单。测试函数头很容易迁移。例
如,将def test_my_function():转换成func TestMyFunction(t *testing.T) {,通过
简单的替换就可以完成。此外,go routines和channels非常易于使用,使得并发文本
分析很容易实现。
整个迁移过程耗时3个月,感兴趣的读者可以查看他们的迁移过程。下面是他们的迁移
成果:
API平均响应时间由100ms降至10ms;
所需EC2实例的数量减少了85%;
由于Go可以编译成一个单独的二进制文件,而Go 1.5让交叉编译变得很容易,所以他们
现在能够提供一个Repustate自托管版本;
由于Python和Go相似,所以他们能够快速重建单元测试。
另外,由于重新过了一遍Python代码,他们还做了许多与性能无关的改进。因此,该文
指出:
如果时间允许,回过头来看看旧有的代码总是好的。你也许会惊讶,它怎么会那么差。
p*****2
发帖数: 21240
2

是很牛呀。我们准备从Node转Go了。

【在 d******e 的大作中提到】
: Repustate向世界各地的企业和组织提供文本分析服务。随着公司的发展,他们每天处
: 理的文本段数量从5亿增加到10亿,其中包括Tweet、新闻文章、博客评论、用户反馈等
: 。大规模的文本分析非常困难,因为很少会出现两段文本完全相同的情况,所以无法利
: 用缓存来提高效率。不过,它可以将大段的文本分成多个句子,然后并发分析每个句子
: 。近日,Repustate官方博客发表了一篇博文,介绍其API的演进过程。
: Repustate API的第一个版本是用Django编写的。他们构建了一个原型,并以此为基础
: 推出了他们的服务。但每个Django请求/响应周期的开销太大。随着API访问量增加,可
: 靠性问题凸显,使用Amazon服务的成本也大大增加。于是,他们开始寻找一种Python代
: 替方案,并选择了Flask。Flask几乎是现成的API,而且是轻量级的。不过,他们稍后
: 又发现了Falcon。他们非常喜欢这个框架,因为它使用Cython进行了优化,速度比

s***o
发帖数: 2191
3
你们绕来绕去怎么就不上java呢?
要不让赵老师去给你们辅导一下

【在 p*****2 的大作中提到】
:
: 是很牛呀。我们准备从Node转Go了。

p*****2
发帖数: 21240
4

为什么要上Java?

【在 s***o 的大作中提到】
: 你们绕来绕去怎么就不上java呢?
: 要不让赵老师去给你们辅导一下

z****e
发帖数: 54598
5
it doesnt tell go is good
only tells u node & python sucks
becoz of dynamic type
py & js & other scripting lang. r slow
i think this is a common sense
benchmark is always there
u can try it uself
http://www.techempower.com/benchmarks/#section=data-r10&hw=ec2&
a*****g
发帖数: 19398
6
厉害
有机会我也应该试一试 go 哦

【在 d******e 的大作中提到】
: Repustate向世界各地的企业和组织提供文本分析服务。随着公司的发展,他们每天处
: 理的文本段数量从5亿增加到10亿,其中包括Tweet、新闻文章、博客评论、用户反馈等
: 。大规模的文本分析非常困难,因为很少会出现两段文本完全相同的情况,所以无法利
: 用缓存来提高效率。不过,它可以将大段的文本分成多个句子,然后并发分析每个句子
: 。近日,Repustate官方博客发表了一篇博文,介绍其API的演进过程。
: Repustate API的第一个版本是用Django编写的。他们构建了一个原型,并以此为基础
: 推出了他们的服务。但每个Django请求/响应周期的开销太大。随着API访问量增加,可
: 靠性问题凸显,使用Amazon服务的成本也大大增加。于是,他们开始寻找一种Python代
: 替方案,并选择了Flask。Flask几乎是现成的API,而且是轻量级的。不过,他们稍后
: 又发现了Falcon。他们非常喜欢这个框架,因为它使用Cython进行了优化,速度比

f*******t
发帖数: 7549
7
http://www.gopherjs.org/blog/2015/09/28/surprises-in-gopherjs-p
貌似把go编译成js用v8运行速度快几倍。。。
p*****2
发帖数: 21240
8
能不能把js编译成go?

【在 f*******t 的大作中提到】
: http://www.gopherjs.org/blog/2015/09/28/surprises-in-gopherjs-p
: 貌似把go编译成js用v8运行速度快几倍。。。

f*******t
发帖数: 7549
9
js无法编译呀

【在 p*****2 的大作中提到】
: 能不能把js编译成go?
l**********n
发帖数: 8443
10
看完感觉py可以被go取代了

【在 d******e 的大作中提到】
: Repustate向世界各地的企业和组织提供文本分析服务。随着公司的发展,他们每天处
: 理的文本段数量从5亿增加到10亿,其中包括Tweet、新闻文章、博客评论、用户反馈等
: 。大规模的文本分析非常困难,因为很少会出现两段文本完全相同的情况,所以无法利
: 用缓存来提高效率。不过,它可以将大段的文本分成多个句子,然后并发分析每个句子
: 。近日,Repustate官方博客发表了一篇博文,介绍其API的演进过程。
: Repustate API的第一个版本是用Django编写的。他们构建了一个原型,并以此为基础
: 推出了他们的服务。但每个Django请求/响应周期的开销太大。随着API访问量增加,可
: 靠性问题凸显,使用Amazon服务的成本也大大增加。于是,他们开始寻找一种Python代
: 替方案,并选择了Flask。Flask几乎是现成的API,而且是轻量级的。不过,他们稍后
: 又发现了Falcon。他们非常喜欢这个框架,因为它使用Cython进行了优化,速度比

相关主题
full stack python to clone google plus like website谁能给科普一下python是怎么用的?
python + django 2天搞定。比较spring-boot 和 node.js
python question?Python至少还能管3年
进入Programming版参与讨论
i***h
发帖数: 12655
11
py 和go不是一个类别啊

【在 l**********n 的大作中提到】
: 看完感觉py可以被go取代了
d******e
发帖数: 2265
12
tornado和python3还是很厉害的。但是远到不了go的地步。

【在 l**********n 的大作中提到】
: 看完感觉py可以被go取代了
N*****m
发帖数: 42603
13
请给我发大包子

【在 p*****2 的大作中提到】
: 能不能把js编译成go?
n******7
发帖数: 12463
14
http://yosefk.com/blog/things-from-python-id-miss-in-go.html

【在 l**********n 的大作中提到】
: 看完感觉py可以被go取代了
w***g
发帖数: 5958
15
go主要是一批system people在做,而python则有很强大的机器学习社区。
这个go三五年内取代不了。要我说,直接上C++就一步到位了。

【在 i***h 的大作中提到】
: py 和go不是一个类别啊
d****i
发帖数: 4809
16
这个正好印证了rob pike自己所言,Go就是吸引只会Python这种脚本, 学不会C++和
Java的程序猿。Go实际上只是解决了狗家自己的问题:一批python程序猿看到C++和
Java觉得难(其实不难),只好学Go来充数一下。Go对于C, C++, Java程序猿没有任何
吸引力,论速度和效率比不过这三个,论做系统比不过C和C++, 论做应用比不过Java。

【在 w***g 的大作中提到】
: go主要是一批system people在做,而python则有很强大的机器学习社区。
: 这个go三五年内取代不了。要我说,直接上C++就一步到位了。

l*********s
发帖数: 5409
17
简单容易学是优点。go也不是只有狗狗用,楼主的例子你就没看到嘛。

【在 d****i 的大作中提到】
: 这个正好印证了rob pike自己所言,Go就是吸引只会Python这种脚本, 学不会C++和
: Java的程序猿。Go实际上只是解决了狗家自己的问题:一批python程序猿看到C++和
: Java觉得难(其实不难),只好学Go来充数一下。Go对于C, C++, Java程序猿没有任何
: 吸引力,论速度和效率比不过这三个,论做系统比不过C和C++, 论做应用比不过Java。

d****i
发帖数: 4809
18
楼主的例子正是Python程序猿转Go的典型例子,简单易学都是假的和表象的,真的到了
实际的use case, C++和Java几十年来碰到的东西都绕不过,比如Go号称用来做web不错
,但是搞了半天还是要加入指针,与其这样我还不如用C和C++。

【在 l*********s 的大作中提到】
: 简单容易学是优点。go也不是只有狗狗用,楼主的例子你就没看到嘛。
d******e
发帖数: 2265
19
对startup,快速迭代最关键。
如果go又有性能又能快速开发,自然会有人用。
有没有指针真的不是问题。

【在 d****i 的大作中提到】
: 楼主的例子正是Python程序猿转Go的典型例子,简单易学都是假的和表象的,真的到了
: 实际的use case, C++和Java几十年来碰到的东西都绕不过,比如Go号称用来做web不错
: ,但是搞了半天还是要加入指针,与其这样我还不如用C和C++。

h****e
发帖数: 2125
20

lol我不觉得狗家employees比你傻,有啥学不会的?

【在 d****i 的大作中提到】
: 这个正好印证了rob pike自己所言,Go就是吸引只会Python这种脚本, 学不会C++和
: Java的程序猿。Go实际上只是解决了狗家自己的问题:一批python程序猿看到C++和
: Java觉得难(其实不难),只好学Go来充数一下。Go对于C, C++, Java程序猿没有任何
: 吸引力,论速度和效率比不过这三个,论做系统比不过C和C++, 论做应用比不过Java。

相关主题
学python的一点小感觉哈请教大牛们这个系统怎么设计
Python Concurrency 主流是用啥找python大牛co-founder
有没有c 或者 c++ 做的 web server Framework?How to use multi-core to speed Python program
进入Programming版参与讨论
d****i
发帖数: 4809
21
狗家爱装逼,不作不死,对于一小部分狗家的人来说用C++和Java这样的传统语言多么
不酷显得俗套啊,所以要非要撒娇作一下,这个时候rob pike正好有活干一下,把原来
的Bell Lab的未出笼成型的老东西重新包装一下,然后内销转出口,配上一下PR狗毛吹
嘘一下。

【在 h****e 的大作中提到】
:
: lol我不觉得狗家employees比你傻,有啥学不会的?

n******7
发帖数: 12463
22
是的 numpy这套没个几年时间搞不起来
numpy现在已然可以跟MATLAB R 相提并论了
问题是go没有操作符重载,搞这些会很难看吧
也没有REPL,用来搞data mining会很不爽
C++也没有REPL,很多运算大家都是用的blas之类的东西,区别不大
大部分人其实用不着自己写C++

【在 w***g 的大作中提到】
: go主要是一批system people在做,而python则有很强大的机器学习社区。
: 这个go三五年内取代不了。要我说,直接上C++就一步到位了。

l*********s
发帖数: 5409
23
re, data scientists do lots of exploratory work, the work flow of compiled
languages is too disruptive for their purpose.

【在 n******7 的大作中提到】
: 是的 numpy这套没个几年时间搞不起来
: numpy现在已然可以跟MATLAB R 相提并论了
: 问题是go没有操作符重载,搞这些会很难看吧
: 也没有REPL,用来搞data mining会很不爽
: C++也没有REPL,很多运算大家都是用的blas之类的东西,区别不大
: 大部分人其实用不着自己写C++

N*****m
发帖数: 42603
24
再加上ipython/notebook,然后spark也支持
data scientist玩起来很爽

【在 n******7 的大作中提到】
: 是的 numpy这套没个几年时间搞不起来
: numpy现在已然可以跟MATLAB R 相提并论了
: 问题是go没有操作符重载,搞这些会很难看吧
: 也没有REPL,用来搞data mining会很不爽
: C++也没有REPL,很多运算大家都是用的blas之类的东西,区别不大
: 大部分人其实用不着自己写C++

s***o
发帖数: 2191
25
因为java需要你们去拯救
Insider: Oracle has lost interest in Java:
http://www.infoworld.com/article/2987529/java/insider-oracle-lo

【在 p*****2 的大作中提到】
: 能不能把js编译成go?
S***s
发帖数: 104
26
go's goal as the creator describes
fast prototype (like python) but not bad to scale (python sucks at scale?)

【在 d******e 的大作中提到】
: 对startup,快速迭代最关键。
: 如果go又有性能又能快速开发,自然会有人用。
: 有没有指针真的不是问题。

z****e
发帖数: 54598
27
拯救毛
oracle要是肯把java吐出来
估计所有人都会举双手赞成

【在 s***o 的大作中提到】
: 因为java需要你们去拯救
: Insider: Oracle has lost interest in Java:
: http://www.infoworld.com/article/2987529/java/insider-oracle-lo

f*******t
发帖数: 7549
28
of course. python doesn't scale at all

【在 S***s 的大作中提到】
: go's goal as the creator describes
: fast prototype (like python) but not bad to scale (python sucks at scale?)

d****i
发帖数: 4809
29
这个说法不正确,人家PHP写的app还照样可以scale到上千个node十几亿的user,为什
么Python不可以,还是人的问题,不是语言的问题。

【在 f*******t 的大作中提到】
: of course. python doesn't scale at all
d******e
发帖数: 2265
30
Timehop的技术栈于2013年经历了从Rails到Go的转变;至今,Timehop已经高效、稳定
地运行了一年半时间,并且每天活跃用户数达到了600万,其中95%的请求响应时间从
Rails时代的700毫秒减少到70毫秒。
看起来Go稳定的搞python/rails 10倍response time 提高。
相关主题
现在Window下写GUI的话用什么库?Django这个framework怎样?
Python大牛说说那本书比较经典呢?关于ruby和rails一点疑惑
这次node把python也给干了Django怎么学
进入Programming版参与讨论
f*******t
发帖数: 7549
31
呃,你先研究下hhvm跟python性能对比吧

【在 d****i 的大作中提到】
: 这个说法不正确,人家PHP写的app还照样可以scale到上千个node十几亿的user,为什
: 么Python不可以,还是人的问题,不是语言的问题。

f*******t
发帖数: 7549
32
parse自从转到go以后,backend的问题已经变成mongodb only

【在 d******e 的大作中提到】
: Timehop的技术栈于2013年经历了从Rails到Go的转变;至今,Timehop已经高效、稳定
: 地运行了一年半时间,并且每天活跃用户数达到了600万,其中95%的请求响应时间从
: Rails时代的700毫秒减少到70毫秒。
: 看起来Go稳定的搞python/rails 10倍response time 提高。

p*****2
发帖数: 21240
33
你们在用mongo呀?

【在 f*******t 的大作中提到】
: parse自从转到go以后,backend的问题已经变成mongodb only
f*******t
发帖数: 7549
34
一直是mongo。问题太多,最近在升级mongorocks效果也不好。我们只好做接口,想把
数据库外包出去

【在 p*****2 的大作中提到】
: 你们在用mongo呀?
z****e
发帖数: 54598
35
赞外包,这是外包第一步

【在 f*******t 的大作中提到】
: 一直是mongo。问题太多,最近在升级mongorocks效果也不好。我们只好做接口,想把
: 数据库外包出去

z****e
发帖数: 54598
36

纯粹是欺负动态类型语言效率低

【在 f*******t 的大作中提到】
: parse自从转到go以后,backend的问题已经变成mongodb only
p*****2
发帖数: 21240
37
大数据用mongo确实很蛋疼

【在 f*******t 的大作中提到】
: 一直是mongo。问题太多,最近在升级mongorocks效果也不好。我们只好做接口,想把
: 数据库外包出去

z****e
发帖数: 54598
38

用了c++版的c*就不需要mongo了

【在 p*****2 的大作中提到】
: 大数据用mongo确实很蛋疼
f*******t
发帖数: 7549
39
卧槽,我们用c*存一些analytics的东西,这两天正挂着,一个老员工在拼命修呢

【在 z****e 的大作中提到】
:
: 用了c++版的c*就不需要mongo了

f*******t
发帖数: 7549
40
之前已经推出了webhooks,让客户把后端代码放heroku之类的地方跑

【在 z****e 的大作中提到】
: 赞外包,这是外包第一步
相关主题
Django怎么学python + django 2天搞定。
关于 Python DevOps 的几个问题python question?
full stack python to clone google plus like website谁能给科普一下python是怎么用的?
进入Programming版参与讨论
f*******t
发帖数: 7549
41
RoR实在太慢了,代码还不好维护

【在 z****e 的大作中提到】
:
: 用了c++版的c*就不需要mongo了

p*****2
发帖数: 21240
42
什么原因呀?

【在 f*******t 的大作中提到】
: 卧槽,我们用c*存一些analytics的东西,这两天正挂着,一个老员工在拼命修呢
f*******t
发帖数: 7549
43
不知道,反正用着用着就挂了呗。这些数据库需要不停维护的

【在 p*****2 的大作中提到】
: 什么原因呀?
1 (共1页)
进入Programming版参与讨论
相关主题
找python大牛co-founder关于 Python DevOps 的几个问题
How to use multi-core to speed Python programfull stack python to clone google plus like website
现在Window下写GUI的话用什么库?python + django 2天搞定。
Python大牛说说那本书比较经典呢?python question?
这次node把python也给干了谁能给科普一下python是怎么用的?
Django这个framework怎样?比较spring-boot 和 node.js
关于ruby和rails一点疑惑Python至少还能管3年
Django怎么学学python的一点小感觉哈
相关话题的讨论汇总
话题: go话题: python话题: repustate话题: java话题: c++