我们公司是主要是开眼科诊所,但是需要把我们公司的日常业务搞成信息化、数字化管理。之前业务紧就选用 python 来开发后台应用,但是有时候 python 处理业务逻辑什么的特别慢,而且非常耗服务器 cpu 资源,现在就感觉 python 遇到瓶颈啦,假如说以后我们公司的诊所越开越多,业务也越来越庞大,要是从后端技术中选一门语言来支撑我们的哦业务发展,你们觉得是选择 go 还是 java 。我们公司有一些互联网的项目 公众号、小程序、挂号-做检查-收费-开药一系列操作的医疗系统。
我们公司是主要是开眼科诊所,但是需要把我们公司的日常业务搞成信息化、数字化管理。之前业务紧就选用 python 来开发后台应用,但是有时候 python 处理业务逻辑什么的特别慢,而且非常耗服务器 cpu 资源,现在就感觉 python 遇到瓶颈啦,假如说以后我们公司的诊所越开越多,业务也越来越庞大,要是从后端技术中选一门语言来支撑我们的哦业务发展,你们觉得是选择 go 还是 java 。我们公司有一些互联网的项目 公众号、小程序、挂号-做检查-收费-开药一系列操作的医疗系统。
|
1
技术选型,语言特性因素放在后面,先考虑下现有团队转哪种语言成本低
另外,业务逻辑慢,99%的可能瓶颈不在语言上,Python 虽然比编译型语言慢 1 ~ 2 个数量级,但是处理普通的互联网 CURD 业务,不会有性能问题;我参与过多个大型的 Python 互联网业务系统了。 你的问题多半可能出现在数据库、机器等资源上,跑个火焰图看下耗时在哪,或许不用换语言,也能解决问题 |
|
chengxiaoDec 7, 2020
2
减少自己团队的被替代性 GO+1
节约成本 JAVA+1 |
|
3
按照楼主的描述,你选啥语言都没大区别的,相信我。
|
|
coderxyDec 7, 2020
4
同意一楼,应该跟语言无关,其它地方卡估计是
|
|
5
PHP 8 不错。
|
|
hongchDec 7, 2020
6
基础数据的 crud,真的有那么耗性能吗,10 万条数据以内吧?
|
|
7
我们业务处理速度慢,是因为查询大数据量(十几万)的时候,再用 python 来处理这些数据,我发现我们的服务器 cpu 就会占用 90%多,得需要等好几分钟,这还是 10 几家诊所的数据量。
|
|
hqs0417Dec 7, 2020
8
@longmeier90 搞分布式啊,并行计算
|
|
9
C#/.net 不考虑下吗?
|
|
goxyDec 7, 2020
10
python 本身不是瓶颈,团队里的人才是瓶颈
题外话,这种东西最好就是 搭建 /用 Saas,多租户的平台,毕竟是一个眼科诊所,不是信息技术公司。应当可以抽离出一些通用的流程 /模块 |
|
zhuangzhuang1988Dec 7, 2020
11
熟悉哪个用哪个。
|
|
KuroNekoFanDec 7, 2020
12
js
|
|
AppxLiteDec 7, 2020
13
go js
|
|
TypeErrorDec 7, 2020 via Android
14
十几万 Python 也没啥问题吧,试试把 list/dict 操作换成 numpy/pandas
|
|
15
@goxy 是的我们公司也想弄成 sass 模式,可以加盟我们的诊所,用我们的医疗系统
|
|
mascteenDec 7, 2020 via Android
16
这个瓶颈显然不在语言啊,更在架构上吧
|
|
MaxFangDec 7, 2020
17
普通的内部信息化系统应该还没有到达语言瓶颈吧。就目前的问题,很有可能是程序上问题,可能有一些优化空间。先定位问题,如果已经没有大的优化空间了,就需要考虑换架构的事情,无非变分布式,拆分系统,分库分表等一些常见的方案,主要的方案定了之后,综合考虑语言方面的成本,性能和支持情况。
|
|
miniliukeDec 7, 2020
18
天下 Web 一石,我 Java 独占 9 斗......Web 系统的话,小团队最好用 Java,你想找个坑出来都难......
|
|
ksedzDec 7, 2020
19
反对一楼,语言造成的低水平的人员乱写本身是一个可以用语言解决的问题。
语言选择我倾向 go,主要是运维成本低、和 python 的相似度高。 |
|
heyjeiDec 7, 2020
20
@longmeier90 都一样的,我一个项目也是把数据从数据库里取出来放到内存中用 PHP 分析计算,就 1 万不到的数据,要好几秒才能算完。但是把把这个计算推到 MySQL 那里计算,速度一下子就快起来了。
建议可以将计算推到数据库那里试试看。 |
|
LemengDec 7, 2020
21
如果没要求,选顺手的
|
|
rb6221Dec 7, 2020
22
选 go 可能对,但是选 java 肯定不会错。
|
|
no1xsyzyDec 7, 2020
23
先换个更快的运行时比如 PyPy Cython 试一下,当换运行时有明显提升但仍然不够时才考虑换语言;否则换语言本身是没用的,最多新语言带来的新思维方式有点用,如果是基础设施问题多半可以通过引第三方包解决。
|
|
24
@heyjei 很多时候我从数据库取完数还需要再匹配计算,没法完全放到 mysql 那里计算,再说如果数据量大 mysql 同样也会消耗大量资源,甚至会导致其他业务也会变慢。
|
|
kevinwanDec 7, 2020 via iPhone
25
选 go +1
|
|
jimrokDec 7, 2020
26
java + python 混合就行。看你计算为啥慢,是不是没有用缓存?
|
|
tumaowolfDec 7, 2020
27
java 不会出大错,但我喜欢 go
|
|
so1nDec 7, 2020 via Android
28
@longmeier90 你可以用 panda 试试……逻辑代码好写又快
|
|
LeiggDec 7, 2020 via iPhone
29
真要换,当然是 go,拥有 Java 的性能和强类型的同时,还比 Java 语法简洁 N 倍
|
|
bytenoobDec 7, 2020
30
@longmeier90 排查下哪个操作占用了最多的时间,肯定有很耗时的操作,优化一下即可
|
|
jmyz0455Dec 7, 2020
31
关注一下。
|
|
33
两个语言都很熟。管了五年项目和团队,我建议选 go 。
别听其他人忽悠你选 java 的说法。 你们目前用的 python,说明团队成员都对 java 框架半吊子了解。leader 如果是 java 出身,不会选 python,java 开发者都比较固守城池。转 java 是完全不合适你团队现状的,熟悉 java 框架都要很长时间。开除现在的团队重新找 java 的时间成本也高。 如果你那不是一群只会 python 的水货应届生,转 go 应该没太大磨合难度。 |
|
2kCS5c0b0ITXE5k2Dec 7, 2020
34
先确认你是不是语言瓶颈。。 大部分的项目都是数据库瓶颈
|
|
vision1900Dec 7, 2020
35
python 是真的慢,被 node 吊打可还行
|
|
kalman03Dec 7, 2020
36
这个应该是技术负责人决定的事情。
如果你是老板,信任你的技术负责人吧。 如果你不是,那么你可能也不是技术负责人,不然你最初为什么会选用 python,现在却要大家出谋划策?这好像不符合技术负责人的技术能力要求。 如果你不是老板,也不是技术负责人,那么这个事情就不需要操心了。 |
|
misaka19000Dec 7, 2020
37
我们 Python 应用目前 qps 1000 左右,没遇到瓶颈,所以我认为不是语言的问题
|
|
CbdyDec 7, 2020 via Android
38
java 技术栈很好,但是水货太多,没有靠谱 java 程序员的话建议选其他语言
|
|
zachlhbDec 7, 2020 via Android
39
不考虑项目,业务范围来选择语言的都是耍流氓
|
|
40
来鱼塘赏鱼
|
|
NoBugDieDec 7, 2020 via Android
41
大概率是程序或者数据库问题,换了语言一样无解。
|
|
manhereDec 7, 2020 via Android
42
买套现成的成熟 his 系统使用不好吗?
|
|
nameloswDec 7, 2020
43
你这个不是语言的问题, 用很快的语言可能也只能提升不到 10 倍.
感觉你挪动数据太多了, 要不优化成 SQL, 要不就上 Spark 之类的专业数据处理. |
|
catrorDec 7, 2020 via Android
44
什么操作要把十几万条数据查出来?换语言估计没啥明显效果
|
|
gochatDec 7, 2020
45
毫无疑问! golang
|
|
dayeye2006199Dec 8, 2020
46
为什么十几万条数据,要用 py 来做内存处理呢?可不可以挪进数据库处理呢?单纯写 CRUD,很难碰到 py 的性能天花板。
|
|
47
@kalman03 我们公司搞后端的就 3 个人,领导不是特别懂技术的那种,所以技术选型需要我们几个人商讨一下,是这种情况。
|
|
48
@catror 都是一些统计方面的工作,统计好几年的数据,目前 10 家诊所就有 10 万级的数据量,以后数据量会更多
|
|
zjsxwcDec 8, 2020 via Android
49
不是数据库慢的问题,只是单纯由于 python 一次性处理查询来的十几万内存数据慢的话,可以用 pypy,性能可以达到纯 c 的级别,唯一缺点是内存占用大一点。
|
|
2379920898Dec 8, 2020
50
选 GO 吧、成本也不高 6 天就转了
|
|
ElmerZhangDec 8, 2020 via iPhone
51
才 10 几万数据就要跑几分钟,基本可以肯定和语言无关,你该换个程序员
|
|
miceanDec 8, 2020
53
得先分清是哪种情况
1 、数据库查询慢,是不是没做优化 2 、python 处理慢,是不是内存不够 |
|
hboliveDec 8, 2020
54
架构的问题,python 虽然慢,但不至于 10 万这个数据都对付不了。。
一次性装进来,用什么语言都快不到哪去。。 |
|
55
.net 5.0 考虑一下😒
|
|
aladdindingdingDec 8, 2020
56
python 躺枪
|
|
wwg1994Dec 8, 2020
57
十几万的统计工作而已,python 用 pandas 试试?
|
|
dawniiiDec 8, 2020 via iPhone
58
这不是离线任务吗?找个从库,闲时去跑,就算跑的慢了影响大吗?
|
|
yalinDec 8, 2020
59
性能问题 与 语言无关
|
|
60
建议 c#
|
|
hezemingDec 8, 2020
61
@longmeier90 统计对实时性要求应该没那么高啊,基本的定时统计,缓存完全可以解决,就算是实时查的,十几万的数据量 mysql 级别应该也没什么压力
|
|
ming7435Dec 8, 2020 via iPhone
62
10 几万就性能不行,不用换语言,换人吧
|
|
63
一个诊所就能把 CPU 干翻????你这是啥诊所,梅奥诊所吧
|
|
lydzzDec 8, 2020
64
主要讨论谁是世界上最棒的语言
|
|
lesterchenDec 8, 2020
66
所以用 python 的遇到点问题,就推锅到 python 身上。
|
|
hahabaDec 8, 2020
67
你的业务量比豆瓣更大的话,当我没说。
如果没有,则不是 python 的瓶颈,是人的瓶颈。 可以招我过去优化优化,哈哈 |
|
bllessDec 8, 2020 via Android
68
选 go,直接用开发 python 的思维写就好。如果有一个好的 java 技术经理选 java
|
|
liujavamailDec 8, 2020
69
你们是不是数据库的设计问题, 就是没有用一些冗余的字段,去存储一下你们统计需要查询的数据,导致每次都要先查数据出来,然后用 python 做计算,如果数据全部用 python 来计算,那肯定是会慢的,即使你们换语言了, 随着数据量的增大,还是会遇到同样的问题
|
|
lyz1990Dec 8, 2020
70
看这个描述,感觉不是语言问题
|
|
TarotVoyagerDec 8, 2020
71
Java
某公司技术栈在国内突出一个吹 |
|
krixaarDec 8, 2020
72
十几万这个数量级用 Excel 都能搞定,Python 算半天是不是得优先考虑下是不是哪里写得有问题?
|
|
VibraDec 8, 2020
73
你确定你们一个诊所 python 性能不够? Instagram 用的也是 python 哦
|
|
RangerWolfDec 8, 2020
74
如果是涉及到数据统计处理,我们是读取出来之后用 pandas 来扛~ 速度毫无压力
|
|
tabris17Dec 8, 2020
75
你需要的是一个数据仓库
|
|
x2009againDec 8, 2020
76
建议 java 或者.net ,我以前就参与了.net 做的医疗系统,预约挂号、会诊、化验、出化验诊断、库存、费用结算等模块都有。
|
|
zone10Dec 8, 2020
77
盲猜是用 Python 循环导致慢了,十几万用 Python 的 Pandas 还是港港单单的,记住要用矢量计算别用循环
|
|
sam014Dec 8, 2020
78
用 Java 的话,会不会出现团队人数*2 的情况 ??
|
|
fkmcDec 8, 2020
79
可以先考虑业务优化的....
|
|
matrix67Dec 8, 2020
80
统计直接 elk 就行了,买机器哈哈
|
|
YanoDec 8, 2020
81
说实话,Java 和 go 都可以,如果性能的话几乎都差不多。我看你的描述还有 公众号、小程序、挂号-做检查-收费-开药一系列操作,那其实 Java 更好一点,因为毕竟生态更多,毕竟发展这么多年了,Spring boot 一把梭😁
|
|
seven123Dec 8, 2020
82
感觉慢应不是 python 的问题吧,几十万就这样了?
|
|
zuncengDec 8, 2020
83
看你们团队组成吧 四年前我们选了 go 不说项目写的多好 至少 hold 住了业务
四年后你问我当然是选 Golang,因为我根本不会 java |
|
tcfenixDec 8, 2020
84
@chevalier
每个人都有自己的屁股, 比如如果楼主是技术主管或者公司老板,那么看问题应该优先看哪个成本低, 出活快,底下人的技术成长老板又不在乎 但是我们看到楼主好像就是一个打工的, 那么选择技术栈就有两条线了, 一条是明线, 说服老板这个技术好,市场上好招人,性能好,轮子多 一条是暗线,就是楼主跟几个小伙伴都有这个共识主推这个语言,后续跳槽的时候市场上工作好找 python 在现在市场上面比较多的岗位是爬虫, 总得职位量跟楼主举得这两个例子完全没有可比性, 而且如果楼主或者其他人未来想去大厂的话,这两个语言几乎包括了所有大厂的服务端岗位, 而招聘 python 的大厂岗位非常有限 |
|
resistDec 8, 2020
85
考虑那么多做什么,选 Java 错不了,Java 便宜兄弟
|
|
x940727Dec 8, 2020
86
十几万的数据而已,放哪算都产生不了啥压力吧?给服务器换个好点的固态。
|
|
rockdddDec 8, 2020
87
同医疗行业,我们后端用的 java
|
|
88
@zone10 谢谢大佬指点
|
|
89
@tcfenix 分析的好,我就是一个搬砖的。
|
|
JokeEndDec 8, 2020
90
10+w 数据怎么可能是语言的瓶颈,优化下代码看看
|
|
neptunoDec 8, 2020
91
才十几万数据,,,,估计是之前程序员代码写的有问题吧,你们没找到真正问题在哪的话,,换 go 和 java 一样慢的
|
|
92
Python 慢为什么不优化?我还没见过 Python 慢到不能用的场景。
|
|
securityCodingDec 8, 2020
93
跟语言没啥关系啊 , 是不是 10+w 数据实时 loading 到内存再计算? 那样谁来都慢啊,更多是实现方案的问题,这点数据量还谈不上架构
|
|
94
#1 的回复是非常优秀的代表。
#3 的回复是最傻逼的那种。 希望我们都学习一楼,唾弃三楼。 |
|
wysnylcDec 8, 2020
95
你看,py 和 go 都迫不及待的宣传自己
所以你选什么自己知道吧 |
|
fxDec 8, 2020
96
Elixir
|
|
rSP0rcaA9K11RjszDec 8, 2020
97
十几万就慢了 那八成就是编码和数据库的问题了 先定点再优化吧 换啥都没用
|
|
SjwNo1Dec 8, 2020
98
我也还没见过 Python 慢到不能用的场景~
|
|
mamahahaDec 8, 2020
99
porn 站随时得有上百万的吞吐吧?如果卡顿肯定早凉凉了,人家是用 PHP 做的,PHP 可是在鄙视链最底层的存在了,可见选啥语言对服务能力影响不大。
|
|
salmon5Dec 8, 2020
100
“go 性能好,用 go”
|