0
我是新来的多播数据馈送处理,我的问题是什么是在数据流上创建一个简单的过滤器的最佳方法。C++多播数据馈送过滤器
我正在编写一个应用程序来处理流媒体财务数据,例如在纽约证券交易所交易的所有股票的股票价格。数据流看起来像这样。
SJYM2 Quote: Bid=91.265000, 4 Ask=91.330000, 4
6SM2 Quote: Bid=1.105500, 23 Ask=1.105800, 5
RFM2 Quote: Bid=1.204500, 6 Ask=1.205000, 7
6SM2 Quote: Bid=1.105500, 24 Ask=1.105800, 5
6SM2 Quote: Bid=1.105500, 25 Ask=1.105800, 5
6SM2 Quote: Bid=1.105500, 26 Ask=1.105800, 5
6SM2 Quote: Bid=1.105500, 27 Ask=1.105800, 5
6SM2 Quote: Bid=1.105500, 28 Ask=1.105800, 5
GEH3-GEZ3 Quote: Bid=23.500000, 325 Ask=24.500000, 1501
GE:BF_M2-H3-Z3 Quote: Bid=-15.500000, 936 Ask=-14.000000, 16
GEM3-GEU3 Quote: Bid=7.500000, 21823 Ask=8.000000, 79
GE:DF_H3H4H5H6 Quote: Bid=-21.000000, 6 Ask=-19.000000, 4
NGG3-NGQ3 Quote: Bid=-0.162000, 2 Ask=-0.081000, 1
NGH3-NGU3 Quote: Bid=-0.185000, 3 Ask=-0.102000, 1
BZK2 Quote: Bid=123.970000, 1 Ask=124.120000, 1
BZ:C1_HO-BZ_K2 Quote: Bid=11.100000, 1 Ask=11.320000, 1
BZ:C1_RB-BZ_K2 Quote: Bid=17.060000, 1 Ask=17.310000, 1
BZM2 Quote: Bid=123.250000, 1 Ask=123.460000, 1
BZN2 Quote: Bid=122.530000, 1 Ask=122.920000, 1
CLK2-BZK2 Quote: Bid=-18.770000, 1 Ask=-18.610000, 1
BZK2 Quote: Bid=123.970000, 1 Ask=124.110000, 5
BZ:C1_HO-BZ_K2 Quote: Bid=11.110000, 1 Ask=11.320000, 1
BZ:C1_RB-BZ_K2 Quote: Bid=17.070000, 2 Ask=17.310000, 1
BZM2 Quote: Bid=123.250000, 1 Ask=123.450000, 5
BZN2 Quote: Bid=122.530000, 1 Ask=122.910000, 1
如果我只BZN2兴趣,BZK2和6SM2数据,什么是创建一个简单的过滤器来拉只有那些数据的最佳方式?
谢谢。
我想过使用strcmp(),但问题是我可能需要为20个不同的股票拉数据,所以对于每条新消息,我可能必须经过20 strcmp(),有没有更快的方法来解决这个问题? – 2607 2012-03-29 02:48:18
如果此前端问题对您的性能至关重要,那么最好的方法是将'strcmp || strcmp || strcmp || ......用词法分析器。有一种可能的解决方法 - 您可以收集有关最频繁标记的统计信息并首先进行比较。 – iehrlich 2012-03-29 02:52:36
你能否提供一个替代strcmp ||的例子strcmp || strcmp || ...用词法分析器?我在考虑将20个符号放入std :: map,然后调用map.find()方法。谢谢。 – 2607 2012-03-29 03:02:39