Redian新闻
>
精华区里有个100 Most productive labs, 怎么统计出来的?
avatar
k*x
2
i3 330um 1.2GHz 版 $599
i5 430um 1.2GHz 版 $699
@newegg
这两cpu有多少差距?
avatar
b*i
3
要求:服务器端(嵌入式)有三个网卡,同时监听,功能类似。如果有connect就发回
一个JSON,然后客户端发来一个JSON。之后,每次客户端都发一个JSON,我发回JSON。
如果某一次,发来的JSON是{exit},那么这个程序将退出,就是要结束所有三个网卡
的监听。
一般来说,只有最多两个客户端同时接入 。如果每个网卡设置接入上限则接受新的关
掉旧的。比如可以每个网卡规定最多只能三个连接。
==============
我用了asio,不想用boost。看到异步需要boost.bind。那么我是不是只能用同步?同步
如何退出线程?是不是可以设置每个操作的时限?
有人说线程增加1M内存,我用Linux,共有1G内存,应该不是问题。因为我最多9个线程
在监听。
另有人说,最好的退出block线程的方式是自己生成客户端来连接到监听的端口从而使
block的线程进行下去然后发现共有变量设为退出了,就退出。
关于异步我还有些问题,但是如果推荐同步我就不问这些问题了。
avatar
c*a
4
怎么统计出来的? 看上去有些老了,有没有更新啊?
avatar
f*m
5
Board of Trustee is very powerful, period.
avatar
s*9
6
哪有um处理器,明明是m
avatar
w*g
7
最元始的退出同步监听的办法:收到exit消息后,先设置全局标记,然后用
kill传入pid=0,给本进程下所有线程发信号。像select/accept/read/write
这类操作在阻塞过程中如果收到信号就会返回,错误码为EINTR。
这样你就有机会干净退出了。

【在 b***i 的大作中提到】
: 要求:服务器端(嵌入式)有三个网卡,同时监听,功能类似。如果有connect就发回
: 一个JSON,然后客户端发来一个JSON。之后,每次客户端都发一个JSON,我发回JSON。
: 如果某一次,发来的JSON是{exit},那么这个程序将退出,就是要结束所有三个网卡
: 的监听。
: 一般来说,只有最多两个客户端同时接入 。如果每个网卡设置接入上限则接受新的关
: 掉旧的。比如可以每个网卡规定最多只能三个连接。
: ==============
: 我用了asio,不想用boost。看到异步需要boost.bind。那么我是不是只能用同步?同步
: 如何退出线程?是不是可以设置每个操作的时限?
: 有人说线程增加1M内存,我用Linux,共有1G内存,应该不是问题。因为我最多9个线程

avatar
b*s
8
都多少年了。我当年出国前就流传很广。
还有那个做得好的华人生物学家名单,也都需要更新。

【在 c**a 的大作中提到】
: 怎么统计出来的? 看上去有些老了,有没有更新啊?
avatar
t*g
9
到底为啥?
avatar
n*7
10
um是新出的低耗能版。330m 2.13Ghz. 330um 1.2ghz.

【在 s****9 的大作中提到】
: 哪有um处理器,明明是m
avatar
T*i
11
你这种应用,属于大马拉小车。
我给你出个主意好了。你就单线程。设置每个socket成non blocking。
每个循环读写完毕后等1ms。

【在 b***i 的大作中提到】
: 要求:服务器端(嵌入式)有三个网卡,同时监听,功能类似。如果有connect就发回
: 一个JSON,然后客户端发来一个JSON。之后,每次客户端都发一个JSON,我发回JSON。
: 如果某一次,发来的JSON是{exit},那么这个程序将退出,就是要结束所有三个网卡
: 的监听。
: 一般来说,只有最多两个客户端同时接入 。如果每个网卡设置接入上限则接受新的关
: 掉旧的。比如可以每个网卡规定最多只能三个连接。
: ==============
: 我用了asio,不想用boost。看到异步需要boost.bind。那么我是不是只能用同步?同步
: 如何退出线程?是不是可以设置每个操作的时限?
: 有人说线程增加1M内存,我用Linux,共有1G内存,应该不是问题。因为我最多9个线程

avatar
p*m
12
re.
没看到是啥原因。

【在 f*********m 的大作中提到】
: Board of Trustee is very powerful, period.
avatar
s*9
13
这我知道啊,但Newegg上的Acer 1830T没配um啊,um是18w,m是35w,功耗相差很大

【在 n******7 的大作中提到】
: um是新出的低耗能版。330m 2.13Ghz. 330um 1.2ghz.
avatar
b*i
14
我倾向与线程blocking,你倾向于单线程non blocking,那就不用异步了?
看起来,这个和我对待串口一样,用查询方案?具体咋写?我还是要用asio的,不想用
裸的C,asio不是跨平台嘛

【在 T********i 的大作中提到】
: 你这种应用,属于大马拉小车。
: 我给你出个主意好了。你就单线程。设置每个socket成non blocking。
: 每个循环读写完毕后等1ms。

avatar
t*g
15
Board of Visitors??? what the hell is it?
avatar
T*i
17
线程blocking唯一的问题就是linux下,如果一个thread在读socket。另外一个thread
close socket。那个读的thread会一直block。
windows下那个读的thread会立刻返回一个错误。
这个世界就是不完美,大家都suck。而且各自有各自suck的地方。

【在 b***i 的大作中提到】
: 我倾向与线程blocking,你倾向于单线程non blocking,那就不用异步了?
: 看起来,这个和我对待串口一样,用查询方案?具体咋写?我还是要用asio的,不想用
: 裸的C,asio不是跨平台嘛

avatar
n*7
19
1830的键盘应该和1810一样。很烂。我在店里比较了,比x100e差的远。比toshiba
T215D 也不如。
avatar
w*g
20
如果只是读出来写磁盘这么做最好,但如果要解析读进来的消息,
有可能消息读了一半read就返回EAGAIN了,得自己维护buffer。这样反而就麻烦了。

【在 T********i 的大作中提到】
: 你这种应用,属于大马拉小车。
: 我给你出个主意好了。你就单线程。设置每个socket成non blocking。
: 每个循环读写完毕后等1ms。

avatar
e*m
21
Re
★ Sent from iPhone App: iReader Mitbbs Lite 7.56
avatar
T*i
22
buffer就是一个concat算法。属于最简单的算法了吧?
其实他说到json。他还要计数左括号和右括号数量才行呢。
这属于最简单的状态自动机了。我对他有信心。

【在 w***g 的大作中提到】
: 如果只是读出来写磁盘这么做最好,但如果要解析读进来的消息,
: 有可能消息读了一半read就返回EAGAIN了,得自己维护buffer。这样反而就麻烦了。

avatar
h*e
23
好像是董事会希望大学运作要更加商业化. 不过从现在的情况看来, 董事会作决定的过
程有待商榷!

【在 p**m 的大作中提到】
: re.
: 没看到是啥原因。

avatar
d*i
24
他的应用场合不应该用JSON, 应该直接用raw bytes做解析,JSON的overhead太大了。

【在 T********i 的大作中提到】
: buffer就是一个concat算法。属于最简单的算法了吧?
: 其实他说到json。他还要计数左括号和右括号数量才行呢。
: 这属于最简单的状态自动机了。我对他有信心。

avatar
T*i
26
他那一个通道才几K波特率?刚才我是笔误。应该是大马拉小车。
比他那个CPU性能低100倍的系统都游刃有余。
现在他的任务是找到最stupid的办法。只要稳定就行。

【在 d****i 的大作中提到】
: 他的应用场合不应该用JSON, 应该直接用raw bytes做解析,JSON的overhead太大了。
avatar
b*i
28
应该是找到开发迅速,结果稳定的办法,不一定stupid啊。

【在 T********i 的大作中提到】
: 他那一个通道才几K波特率?刚才我是笔误。应该是大马拉小车。
: 比他那个CPU性能低100倍的系统都游刃有余。
: 现在他的任务是找到最stupid的办法。只要稳定就行。

avatar
b*i
29
看你比较多的看法,给你个整体概念:
原来系统16MHz,16M内存能够对付,要求10M以太网,FAT16。现在新的系统为什么要改这
么多呢?一个是需求改成Gigabit Ethernet,无线,一个是要对未来的设备能够容易增
加功能,还要面向未来。
原来的系统用C,自己写没有OS的TCP/IP(库是买的),自己发明二进制的协议,和PC
控制软件(MFC)一起使用。PC上直接改变嵌入式的所有变量。就是一个struct,里面内
容全部被这个二进制协议改变。这样要写一个协议调试软件,解释这个二进制到底什么
意思,在开发阶段帮助解决bug。电路方面自己画包括RAM,Flash, Ethernet Phy在内的
所有电路。应该说,这个设备用了10年才完善起来。
现在的要求是1年内完成从电路到软件的要求。所以稳定,快速开发才是最重要的。所
以,我直接买板子,上面有了千兆以太网,有了SDIO接口(64G都可以用,属于SDXC),
内存1G。为什么1G呢? 因为1G DDR3内存比512M便宜,而Xilinx最多只能用1G。然后使
用Linux把TCP/IP, USB,Wi-Fi全都搞定。但是还剩下显示,和10个通道的串口需要自
己搞一下。别人要我用uCOS。问题是uCOS并不包括其他的库,还要自己买,还不一定比
Linux好呢。
由于有了Linux,嵌入式已经完全变成了软件,基本不考虑嵌入式的问题。就这样还只
有6个月来搞Linux软件和PC的软件。我10个通道1200-3600波特率,每个通道需要每秒
大约做多6次来回。而TCP/IP用Json的通讯一年不用100次,其实就是配置的时候用一次
。所以用JSON可以避免开发协议解释软件,因为人可以看懂文本文件。另外的实时需求
的是Modbus TCP。这个是大约1秒一次或者几次的压力。
关于面向未来,原来设计系统的退休的创业者说,他95年创业的时候,用了当时顶级的
32位CPU, 后来加了FAT16进行CF操作,心想怎么都够了吧,能到2GB呢。结果现在成了
瓶颈,而这个CPU从来没有升级过。所以,现在的项目要用目前顶级的设备,保证未来
10年能够不至于太快过时。

【在 d****i 的大作中提到】
: 他的应用场合不应该用JSON, 应该直接用raw bytes做解析,JSON的overhead太大了。
avatar
b*i
30
我为什么想用Java呢?就是不想自己解释JSON,我要找别人的库来解释。如果左右括号
不对直接返回错误就完了。另外,我可能使用递归来解释,也不用状态机了。

【在 T********i 的大作中提到】
: buffer就是一个concat算法。属于最简单的算法了吧?
: 其实他说到json。他还要计数左括号和右括号数量才行呢。
: 这属于最简单的状态自动机了。我对他有信心。

avatar
b*i
31
http://stackoverflow.com/questions/2486335/wake-up-thread-block
有shutdown,有pipe的方案,虽然不是很懂,但是很诱人。

thread

【在 T********i 的大作中提到】
: 线程blocking唯一的问题就是linux下,如果一个thread在读socket。另外一个thread
: close socket。那个读的thread会一直block。
: windows下那个读的thread会立刻返回一个错误。
: 这个世界就是不完美,大家都suck。而且各自有各自suck的地方。

avatar
b*i
32
这个在asio下难道不是eof?
asio的例子写的
size_t len = socket.read_some(asio::buffer(buf), error);
if (error == asio::error::eof)
break; // Connection closed cleanly by peer.
else if (error)
throw asio::system_error(error); // Some other error.

thread

【在 T********i 的大作中提到】
: 线程blocking唯一的问题就是linux下,如果一个thread在读socket。另外一个thread
: close socket。那个读的thread会一直block。
: windows下那个读的thread会立刻返回一个错误。
: 这个世界就是不完美,大家都suck。而且各自有各自suck的地方。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。