由买买提看人间百态

topics

全部话题 - 话题: 老魏
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
g****u
发帖数: 252
1
来自主题: Programming版 - 大家先别给老魏的代码挑刺
目前代码的目的是打赌测性能,不是做产品卖钱。
老魏的这个抢票器(要说计数器也行)离整个12306差十万八千里,
但这个和打赌没关系。
各种有志于改进老魏代码的同学能不能稍安勿噪,
看热闹的也不要喊牛。网络那块还没出来,结果怎么样还不一定。
现在如果第三方出来给老魏的代码打补丁,到时候万一老魏
性能超标,goodbug也会不服。
goodbug至今还没有反应。考虑到要让goodbug写客户端评测
这个事情其实是有conflict of interest的,我已经用
C++写了一个客户端了,正等着老魏的服务器出来测试。
大家先不要拿无关紧要的事情让老魏fix。
我这个客户端会在goodbug放出他的客户端,或者goodbug
声明放弃写客户端认输之后放出。
老魏的代码大家都看到了,难道就没兴趣看看goodbug的
代码?
等赌完了,我们再慢慢研究怎么共同提高老魏的代码,
怎么做persistence之类的别的对12306来说是essential的东西。
到时候老魏愿意再写点code就写点,不愿意写反正已有的东西
都在github上,大家fork出来就是。
谢谢大家。
b****r
发帖数: 672
2
【 以下文字转载自 Military 讨论区 】
发信人: bauner (bauner), 信区: Military
标 题: 看到华为的故事,我也糊涂了。来问问大家的理解。如果老魏在美国。
发信站: BBS 未名空间站 (Sat Aug 13 17:23:35 2016, 美东)
看到华为的故事,我也糊涂了。来问问大家的理解。如果老魏在美国:
Long-Term Disability: 象老魏这种情况,一病病几年。前两年还算华为员工,Long-
Term Disability应该是包括的。比方说60%的coverage,这个是每个月工资的60%由保
险公司给吧,公司不再发工资了。另外象自己及家庭的medical, dental也是60%继续
cover?后面几年,华为把他辞退了,这个Long-Term Disability还继续有效吗?
Employee Life Insurance: 如果后几年老魏不再是华为员工了,这个继续有效吗?理
解中,这个保险是cover老魏后面几年的大病医疗及生后事给老婆小孩的吧,一次性给?
b****r
发帖数: 672
3
看到华为的故事,我也糊涂了。来问问大家的理解。如果老魏在美国:
Long-Term Disability: 象老魏这种情况,一病病几年。前两年还算华为员工,Long-
Term Disability应该是包括的。比方说60%的coverage,这个是每个月工资的60%由保
险公司给吧,公司不再发工资了。另外象自己及家庭的medical, dental也是60%继续
cover?后面几年,华为把他辞退了,这个Long-Term Disability还继续有效吗?
Employee Life Insurance: 如果后几年老魏不再是华为员工了,这个继续有效吗?理
解中,这个保险是cover老魏后面几年的大病医疗及生后事给老婆小孩的吧,一次性给?
q*c
发帖数: 9453
4
来自主题: Programming版 - 老魏 机器已经上了
催啥, 我的信老魏早看到了。
老魏做我们看看, 老魏早就有用户密码了, 有结果了自然给我们看看。 人不做我也
没办法。
b***i
发帖数: 3043
5
来自主题: Programming版 - 请老魏给出一个简单的文字解释
是吗?goodbug同意了?
没有联程我理解,老魏是客户端来查询,比如javascript,完成联程的搜索。然后用户
点击买票,才发送一个请求到最后面的那个抢票线程来完成。
有没有查询,估计差不多。我估计老魏这个思路,搜索联程票也许经过几毫秒的延时,
最后信息变了,但是只要最后买票是否正确不出错就行。这个在票卖差不多的时候用户
多点几次不同线路。
这个就是这个赌约和老魏的解决方案?那么,怎么保存结果到文件,讨论了吗?效率足
够吗?
z****e
发帖数: 54598
6
老魏的所谓核心机,其实就是主机的简化
性能差了几个档次,所以只能跑一些非常简单的操作
比如各种int操作,远没有主机靠谱
但是从整体结构上看,所谓的核心机就是老魏版的主机
老魏用一个破烂机器替换掉主机
以节省机器的钱,真是寒碜,堂堂一个国家铁道部
连个主机都用不起,还要省这点钱,关键是真能省下来么?
卖机器的人一般都是鼠目寸光
人工的费用远大于软件的费用远大于硬件的费用
硬件每年都在贬值,要多无聊才会去省机器的钱啊?
斤斤计较算半死,过两年,不用算一样便宜下来
n*******7
发帖数: 181
7
我想清楚了。老魏是对的。
试这个例子。
select top 1 from ticket where A>=1 AND B>=2 ORDER BY C
| A | B | C |
-------------
| 1 | 2 | 3 | 《=qxc result
| 1 | 4 | 2 |
| 1 | 4 | 4 |
| 2 | 3 | 5 |
| 2 | 4 | 1 | 《= 正确
| 2 | 4 | 5 |
按qxc做法,只在{A,B}={1,2}里找最小C。
正确做法是遍历所有满足A>=1 AND B>=2的{A,B},找最小C。这个遍历过程是站数
平方。
不理解为什么是(n/2)^2,我我觉得好像是n^2/2
composite index, the internal is a hierarchy of trees. For each tree, the
order is log(n).
selecting a range of elements is not log(n).
老魏和qxc的数据库做法tickets是一样的,所以很容易对应比较。
db的composite ... 阅读全帖
n*******7
发帖数: 181
8
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
放假,终于有时间run GDB,才对老魏的程序有些理解了。仍然有些疑问。想向老魏和
大家请教。
先陈述一下基本的理解:
TrainTicketMap 是关键的数据库,表征对应车次当前所有空座. 它是一个二维数组,
两个indices分别是起始站和(站数 - 1). 它的值是一个stack(由单向链实现)。
stack上每一元素对应一个座位的站次间的空座范围,表示此座位从该起始站开始数该
站数范围内是空的。该元素的next指针指向stack上下一个对应不同座位的元素。
在初始状态,每个座位从起始站0开始10站都空,所以这个二维数组只在index[0,9]
有非空stack,里面压了对应所有座位的3000个元素,座位1在最上。假设第一个请求是
起始站3站数1,则座位1从站3到站4被出票,该座位空座范围[起始站,站数-1]从[
0,9]变为[0,2]和[4,5]。所以,对这个二维数组的操作(reserve函数里)是
:座位1在index[0,9]stack上的元素被free回TicketPool,从TicketPool重新
allocate两个元素给座位1,分别压进在index[0,2]... 阅读全帖
n*******7
发帖数: 181
9
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
放假,终于有时间run GDB,才对老魏的程序有些理解了。仍然有些疑问。想向老魏和
大家请教。
先陈述一下基本的理解:
TrainTicketMap 是关键的数据库,表征对应车次当前所有空座. 它是一个二维数组,
两个indices分别是起始站和(站数 - 1). 它的值是一个stack(由单向链实现)。
stack上每一元素对应一个座位的站次间的空座范围,表示此座位从该起始站开始数该
站数范围内是空的。该元素的next指针指向stack上下一个对应不同座位的元素。
在初始状态,每个座位从起始站0开始10站都空,所以这个二维数组只在index[0,9]
有非空stack,里面压了对应所有座位的3000个元素,座位1在最上。假设第一个请求是
起始站3站数1,则座位1从站3到站4被出票,该座位空座范围[起始站,站数-1]从[
0,9]变为[0,2]和[4,5]。所以,对这个二维数组的操作(reserve函数里)是
:座位1在index[0,9]stack上的元素被free回TicketPool,从TicketPool重新
allocate两个元素给座位1,分别压进在index[0,2]... 阅读全帖
s******g
发帖数: 3530
10
魏出来在民运道上混的时候, 估计小波还在娘胎里面喝奶吧, 按理老魏资历最深,
类似当年孙大炮在革命党人的地位, 很奇怪 老魏为啥没有统一海外的民运力量?
结果搞得海外民运四分五裂, 不成气候?
是不是有啥人格缺陷? 不能团结人啊?
w*******e
发帖数: 15912
11
老魏和晓波都蹲过天朝的笆篱子好多年,老魏参加革命更早,78年他往“西单民主墙”
贴大字报<第五个现代化:民主及其他>时晓波还未出道,可惜起大早赶了个晚集,炸药
奖旁落他人,换成你心里能不搓火嘛。
z****e
发帖数: 54598
12
http://www.mitbbs.com/article_t/Programming/31279365.html
最新的开源的开发工具,要比.Net好用,做出来的东西更花哨。
Microsoft悬了,大多是应用已经没有理由用.Net开发了。
自己写了一个translation tool,把数百个class从.net转到java,不到3周基本port完
了。
以上的话都是老魏自己说的,都是对的
公孙大神,古德霸什么也都是这么看的
所以老魏是用实际行动表明了跳船的信号
z****e
发帖数: 54598
13
我感觉,老魏那个500w/s能做的实在是很少
不要说复杂的操作,一些非常简单的操作都很难实现
老魏觉得我说的不对,尽管做出来反驳我
这种计算太细微了,一般pc上cpu估计实现不了
我在家里以前试了几次
mac本的cpu到ms就已经很不精确了
打印出来都是一连串相同的数字
n**x
发帖数: 606
14
本人纯凑绕闹,不倾向任何一方。
系统主要特点:
- 多线程。(老魏没有给出具体多少个线程,假定100个吧。我的12 core intel xeon轻
轻松松100 thread)
- 无锁。
- 单机。
数据结构:
1. 全国1000条线 (X1, X2, X... , X1000), 每条20个区段 (S1, S2, S3... S20)。
2. 每条线的每个区段的票的总数计为:T[X1,S1], T[X1, S2]....... T[X1000, S20]
抢票程序(注意举得例子是联票)
1. 100个thread处理收到的请求
2. 每个请求包括三个参数(线路, 起始站,结束战). 比如(234次列车, 济南, 上
海)。 (注意, 234次列车是从沈阳出发,到上海的, 济南是第5个区的开始,上海最
后一个区段的结束)
3. 计算过程就是把234次列车从济南到上海的每个区段的票数做interlocked.
decrement, 如下:
- Interlocked.Decrement( T[X234,S5] )
- Interlocked.Decrement( T[X234... 阅读全帖
n**x
发帖数: 606
15
you are right. 老魏的方案里没有说如何解决这个问题。
老魏?
n**x
发帖数: 606
16
加了锁老魏的系统就完蛋了。 不枷锁就会出现你前面提到的本来有票结果出现没票的
结果。
老魏人去哪里了?
z****e
发帖数: 54598
17
又不是不让你说
你为什么不说?
说到一点就开始打滚
目前看,同意让老魏和古德霸确定需求的占了大多数
所有人都等着看热闹呢
不做,不配合,那说明什么?
g*****g
发帖数: 34805
18
来自主题: Programming版 - 老魏绝对是人才
你小看老魏了。老魏发现计数器有问题,已经改回单线程了。发现多线程太难了,还是
单线程比较安全。
q*c
发帖数: 9453
19
没干货是不行,其实就是几小时的事情!
我给老魏老霸老姜出机器, 老魏 16 核的 aws 高端机,老霸 10 台测试机, aws 内
部10千兆网没问题, socket 100MB /每秒 毫无压力。平均20 bytes 一个请求,5MM
tps. 10%转一次车
请求 {
4 bytes transactionId
4 bytes date
2 bytes trainId
1 byte start
1 byte end
1 byte seatType}
返回 {
4 bytes transactionId
1 byte isSuccess
}
老霸麻纺点, socket, tcp 协议。 http 实在强人所难。
1000 车, 20 站, 3种票, 每种1000张。每天60MM 票,实测一小时, 5MM tps. 要
保证有票的情况下 99。9% 要出票。30s 99.9% percentile.
大家同意的话,明天先上中等机器供开发,然后上大机器实测。
q*c
发帖数: 9453
20
好吧,老魏太夸张,我等会给你起两个 8gb 4 core 的,你试试你那程序跨机器的速度
。记着就用那个老魏的数据结构,11 byte

我是很好奇能多块,又没时间!

LOL
c******3
发帖数: 296
21
来自主题: Programming版 - 老魏goodbug都败给12306了
老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
面一下去3个0。玩不下去了。
goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
问候个遍。
几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用
等。用户体验超好
http://www.mitbbs.com/article_t1/Programming/31315263_0_2.html
设计师是不容易当的。好的PM管好码工也很重要。
看来击败12306还得请二爷出马了。期待下一篇“Node又秒XXXXX了”。这回XXXXX应... 阅读全帖
i**i
发帖数: 1500
22
来自主题: Programming版 - 老魏goodbug都败给12306了
好比你去银行, 门口有一个取号机, 拿到号以后去窗口办手续, 存钱/取钱等等各种业
务.
现在, 取号机每天只给一个号. 不管门口一百个人抢号,打架, 那个拿到号的可以悠悠
闲闲地办手续.
对应到老魏的系统, 号就是那个id, 你买的就是这个id. 外围有一万个机器为银行服务
都与老魏无关.
s********k
发帖数: 6180
23
来自主题: Programming版 - 老魏,我觉得你要做就全套一起做
麻烦的事情才是需要解决的事情,得看需要解决什么问题,不能因为麻烦就不做,老魏
要是想做硬件,做上面的网络设计实现,可以联系我。
硬件的门槛现在低了不少,深圳做demo的公司很多,第一版本只要出来就行,关键还是
硬件软件一起,软件不能只提供老魏这样的OS,得有应用
z****e
发帖数: 54598
24
来自主题: Programming版 - 大家先别给老魏的代码挑刺
老姜,一般玩法是这样的
我说你做了
你说你没做
好,我确认了
那既然出现了冲突
那就发个毒誓好不好?
就像古德霸说老魏主动问候他家人
你就看老魏敢不敢承认吧
n****j
发帖数: 1708
25
来自主题: Programming版 - 大家先别给老魏的代码挑刺
他俩的事关我屁事,老魏说了,狗的爸逼逼了两年,就问候了,怎么着。老魏也是脾气
好能忍两年,换我这种混混,早骂出翔来了。
z****e
发帖数: 54598
26
来自主题: Programming版 - 简单介绍一下老魏的结构

我可没claim说看不懂,老姜自以为我看不懂而已
单个step的单机就是一个瓶颈,直接掐住整个系统的咽喉
再怎么折腾,都改变不了单机的事实
至于是不是有外围机,那这个其实一点都不重要
不是说有外围机这些毛病就少了的
老魏也说过,这台机器挂了,重启嘛
顶多说搞个热备,现在也已经都不这么搞了
都转成netflix那种搞法了,让chaos monkey进去砸
铁道部,银联什么都是这种搞法
包括visa什么,都是如此了,老魏这一套就是上个世纪的东东
z****e
发帖数: 54598
27
来自主题: Programming版 - 简单介绍一下老魏的结构

说了嘛,这种方式就是上个世纪的东西
热备你妹,现在只有主机才搞热备,大部分公司早就转成netflix的搞法了
都允许chaos monkey进去砸,说你这套是上个世纪的破烂还不信
我可以告诉你银联就这么搞的
现在谁还搞什么热备啊?
而且两年前的热备是小弟擦屁股擦出来的,老魏根本没想过好吧?
那根本就不是老魏的idea
z****e
发帖数: 54598
28
来自主题: Programming版 - 简单介绍一下老魏的结构

哈哈哈,我们八区的战友属于阶级情怀
我天天追着轮回骂,如果都跟老魏一样,估计轮回海日什么都要跟我真人pk了都
不过老魏这人小心眼,估计以后也就这样了
f******2
发帖数: 2455
29
来自主题: Programming版 - 简单介绍一下老魏的结构
赵老师,你这样真的很low,没意思。何必糟蹋自己呢?
老魏真刀真枪的拿出代码了,你“牛”也是在嘴上,而且嘴上比你更牛的都玩消失了。
编程版每个语言上有两三个老魏这样的实干家,老刑的流量就有了。
n*****t
发帖数: 22014
30
来自主题: Programming版 - 简单介绍一下老魏的结构
赵老师你有意思伐,我找出老魏的原帖,你换个帖子继续撒谎。我估计你是爱上老魏了
,跟我们小时候一样,故意往小姑娘铅笔盒里放毛毛虫,不为让人家喜欢你,就为了被
人家骂一通也开心。
b***i
发帖数: 3043
31
来自主题: Programming版 - 请老魏给出一个简单的文字解释
你是说,老魏的数据结构可以处理这种请求:一种是多个人同乘一趟车,另一种是一个
人换乘。那么,如果客户端的请求发来包含了多个车票的一致请求,那么,老魏的程序
经过简单修改可以处理这样的请求?
怪就怪在这里。为什么当初不在赌约里呢?
q*c
发帖数: 9453
32
终于放假了, 你们这些单机党也太猖獗了。 有点时间给你们个堆机器版的。 不过时
间很少所以剩余的自己脑补。
老魏你说的能达到你的单机版的 1/10 就了得了,你的也就几M/s. 你看看我这个版本。
用的全是 proven technology. 有点经验的一看就知道肯定能 work. 全套卖票。
当然你也说了, 我这个酒不需要实现了, 因为比较麻烦。 不过你看看就知道肯定无
问题
实现的和你那个功能完全一样。
前段, 无状态的 web server. 接受订票. 受到订票直接转到相应的中间集群。
中间, 是按照用户 id hash 的 用户数据库群 + 用户 controller.
收到订单然后在数据库中产生该用户的订票信息. 比如有三张连票,
userid, orderID, start1, end1, status = processing
userid, orderID, start2, end2, status = processing
userid, orderID, start3, end3, status = processing
后端, 是按照车次hash ... 阅读全帖
n*******7
发帖数: 181
33
仔细看了你的方法。“从小到大的顺序开始去后端数据库锁票”和“任何异常情况,
返回失败, 已经
索票的数据库自动回卷”归结到数据库底层的实现,都是需要锁的,只是高层应用看不
到罢了。我同意“这些都是自动功能, well tested in real world.”。但实际做出
来,肯定不会有老魏的做法快。你一个车次一个数据库,老魏也一个core只管一个车次
,他的速度快上百倍都是很可能的。
再换一个做法,就用单机,直接实现用C实现roll lock和自动回卷,因为用锁了,比老
魏的做法慢,但是,因为省去数据库的overhead,还是应该比你的方法快。
当然,你的方法是在通用方面是有优势的,就是不要比性能了。
q*c
发帖数: 9453
34
没人比性能啊,那是老魏说联机版的连他现在这个 几 兆票 每秒 的 性能的 10 分之
一也做不到。
我是给个例子,就是联机板的,质量绝对保证不出错,而且能 scale 的, 性能可以上
去。
你说用现成轮子,性能一般都比不上你单独开发的专门系统,这是肯定的。 但是用轮
子的好处就是通用嘛,不需要多少年不断的慢慢 fix bug, 因为别人已经帮助你做了,
也不需要依靠一个人的人品,保证能出货。
更何况老魏那东西车站一多就是平方下降(我没看 code, 看前面说的)。 我这个办法
哪怕是几年后无人汽车10000站一条线,性能不变,他那个就要下降 1万倍。 这个联
机版的扩展性好的多。
所以要是出去忽悠,J这 sql 联机版的肯定忽悠能力比单机的强。
n*******7
发帖数: 181
35
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
感谢老魏的详尽回答!老姜的算法和老魏的实现都做得很漂亮。很同意关于架构的论述。
对多票连座如何实现仍有不解。能否具体说说“把TrainTicketMap稍加改变,座位不是
stack而是bitmap”和“连座加上最小碎片检索可能需要先Or最多55种可能性”?
TrainTicketMap的index是[起始站,站数-1]。在[起始站,站数-1]的stack上的
非零值表示对某座这个站的范围(起始站-》起始站+站数-1)是空的。改成bitmap
是不是bitmap里的1bits和stack上的元素有相同的含义?从同一个[起始站,站数-1
]点上找到的多个座位很可能是不相连的,而相连的座位可能在不同的[起始站,站数
-1]点上,怎样找?
n*******7
发帖数: 181
36
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
这个问题老魏可能有更好回答。就我的理解,“arr[i,j]表示从si到sj的空座集合”
也完全可以。
[上车站,站数]和[上车站,下车站]是一一对应,完全等效的。我看不出有什么
tradeoff。
在TrainTicketMap::allocate()里,用Offsets iterator遍历所有可能范围。其实这
里如果不用
C++的iterator遍历固定的SearchPatterns,直接用C的办法对两个indices用两层for
loop,
loop的range可变,还可以跳过一些entry,省了if (curStart >= 0 && curLength <
SEGMENTS),
会更快一些。老魏估计是因为足够快就不讲究了。
z****e
发帖数: 54598
37
来自主题: Programming版 - 请教一下老魏pc12306中的算法。

第一个,12306的票的数据肯定不在内存中
你想过如何从不同的分布式db中读取你需要的数据么?
老魏的想法很简单,就是直接从local disk上读出来
你觉得这个现实么?
就这么一个简单的需求,就搞死你了,别谈后面的了
说到底就是一个单机计数器
因为计数器这不管那不管,只管i++
这个你要有兴趣,自己做一个for loop,然后测一下各个硬件的能够爬到的最高i
就这种了,有个鸟现实意义
之所以写软件,就是要有创造,就是要解决实际问题
而不是回避问题,老魏的所谓解决方案,就看他在不停滴躲避各种问题
最后自己都承认不是12306,是一个计数器了
现在还打算翻案咯?
我靠,如果谁敢继续说这个是12306的话,我就要发毒誓了
别自找没趣哦
n*******7
发帖数: 181
38
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
老魏的做法是有道理的。查询部分不改写state,可以offload到其它cores,可以允许
多个cores同时查询(只读不写不需加锁),所以慢些没有关系;出票部分因为改写
state,需要快并且minimize改写部分,并且用dedicated core以免锁提高效率。这种
读写不对称处理还是很常见的。
老魏没有把东西做到底,因为已经够快就收手了。下一步应该是用一个core专做出票,
其它多个cores同时查询。那样的瓶颈就在出票上。出票简洁,只需改写一处,好处就
会出来了。你的办法出票时得搜索和改写多个地方,因为改写所以又不能多个cores同
时做,除非先锁住,速度就慢了。
n*******7
发帖数: 181
39
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
感谢老魏的详尽回答!老姜的算法和老魏的实现都做得很漂亮。很同意关于架构的论述。
对多票连座如何实现仍有不解。能否具体说说“把TrainTicketMap稍加改变,座位不是
stack而是bitmap”和“连座加上最小碎片检索可能需要先Or最多55种可能性”?
TrainTicketMap的index是[起始站,站数-1]。在[起始站,站数-1]的stack上的
非零值表示对某座这个站的范围(起始站-》起始站+站数-1)是空的。改成bitmap
是不是bitmap里的1bits和stack上的元素有相同的含义?从同一个[起始站,站数-1
]点上找到的多个座位很可能是不相连的,而相连的座位可能在不同的[起始站,站数
-1]点上,怎样找?
n*******7
发帖数: 181
40
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
这个问题老魏可能有更好回答。就我的理解,“arr[i,j]表示从si到sj的空座集合”
也完全可以。
[上车站,站数]和[上车站,下车站]是一一对应,完全等效的。我看不出有什么
tradeoff。
在TrainTicketMap::allocate()里,用Offsets iterator遍历所有可能范围。其实这
里如果不用
C++的iterator遍历固定的SearchPatterns,直接用C的办法对两个indices用两层for
loop,
loop的range可变,还可以跳过一些entry,省了if (curStart >= 0 && curLength <
SEGMENTS),
会更快一些。老魏估计是因为足够快就不讲究了。
z****e
发帖数: 54598
41
来自主题: Programming版 - 请教一下老魏pc12306中的算法。

第一个,12306的票的数据肯定不在内存中
你想过如何从不同的分布式db中读取你需要的数据么?
老魏的想法很简单,就是直接从local disk上读出来
你觉得这个现实么?
就这么一个简单的需求,就搞死你了,别谈后面的了
说到底就是一个单机计数器
因为计数器这不管那不管,只管i++
这个你要有兴趣,自己做一个for loop,然后测一下各个硬件的能够爬到的最高i
就这种了,有个鸟现实意义
之所以写软件,就是要有创造,就是要解决实际问题
而不是回避问题,老魏的所谓解决方案,就看他在不停滴躲避各种问题
最后自己都承认不是12306,是一个计数器了
现在还打算翻案咯?
我靠,如果谁敢继续说这个是12306的话,我就要发毒誓了
别自找没趣哦
n*******7
发帖数: 181
42
来自主题: Programming版 - 请教一下老魏pc12306中的算法。
老魏的做法是有道理的。查询部分不改写state,可以offload到其它cores,可以允许
多个cores同时查询(只读不写不需加锁),所以慢些没有关系;出票部分因为改写
state,需要快并且minimize改写部分,并且用dedicated core以免锁提高效率。这种
读写不对称处理还是很常见的。
老魏没有把东西做到底,因为已经够快就收手了。下一步应该是用一个core专做出票,
其它多个cores同时查询。那样的瓶颈就在出票上。出票简洁,只需改写一处,好处就
会出来了。你的办法出票时得搜索和改写多个地方,因为改写所以又不能多个cores同
时做,除非先锁住,速度就慢了。
k****i
发帖数: 101
43
来自主题: Programming版 - 老魏 你的智能家居近况如何?
老魏难得冒泡,
抓住交流下。
国内经济转型,
装备制造业寄望于
包括以物联网连接
大数据支撑的智能制造。
假设某国内初创公司
专注于智能制造,
同时希望
整合智能家居
以完善产品线。
你觉得有无合作的可能?
从成就事业的角度,
双拳难敌四手,
取长补短,
资源整合,
共赴前程为上策。
反之,
或为理想,
或是爱好,
或难为凤尾,
则另当別论。
想听听老魏的看法。

:多少年没更新的网页了。
x******y
发帖数: 6946
44
老子有希拉里和她老公的私人email, 选举时也是支持的希拉里, 但是朗朗这事连想都
没想过跑去说。
老魏这还算中华民族的子孙么? 恨不得当年在广场上就捅了丫的
v**e
发帖数: 8422
45
老魏是自封的教父,你们算什么。
v**e
发帖数: 8422
46
刘三百的奖金,老魏最后弄到手没有?
s*****V
发帖数: 21731
47
坐牢出来的时候太早了,当年国家地位还不行。如果两个人都在牢里,肯定是老魏得。
z****e
发帖数: 54598
48
来自主题: Programming版 - 这个老魏是不是精神有点不正常?
一天到晚在这里吹一些不着边际的牛
有意思么?
我代码都写了一堆了,回头看
这丫的还在这边吹这些破烂
累不累?
老魏的逻辑就是,我的产品比cassandra强一万倍
就是强一万倍,一万倍,一万倍,没完没了
尼玛,你要真强一万倍,赶紧做成产品去赚钱
如果想装逼一点,就做成开源,让人民受益
你一天到晚在这边吹牛,有意思么?
还跟人计较半天,你看我是这么实现的
别搞笑了,谁在乎你怎么实现的?
z****e
发帖数: 54598
49
来自主题: Programming版 - 老魏,我们还是回归原点吧
还记得你自己说的最初的目的是什么么?
我来替你重述一遍
就是,有些东西,如果你来做,会不一样
ok,那假设有些东西==12306,会不一样==能搞定
如果你不同意这个前提,我没话说,但是我相信正常人应该会这么认为
但是问题在于,铁道部的问题在于票少人多
怎样设计系统,都会造成很多人买不到票
你怎么设计,结果是不是都一样?
我们不需要谈技术,你已经挂了
其实我从头到尾只有一句话跟你说
你这么做,没有必要,并且不能解决实际问题,因为你前提就错了
码农要明白为什么而码,不要为了码而码
老魏你同意这一句么?
n*****t
发帖数: 22014
50
你这最后两句有隐形 PA 的嫌疑,LOL
我同意,定 scope,双方都能妥协的,也不需要花太多钱,往古德八靠,降低指标,往
老魏靠,降低条件。最后做到啥样算合格,大家评判。
无论谁输谁赢,都算实实在在做了事,不丢脸
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)