小编vik*_*rgt的帖子

Matlab实时情节

我是matlab的新手,我想实时绘制一些数据.我的方法如下:

figure;
hold on;

for i = 1:1000;
   plot(i, i);
   drawnow;
end
Run Code Online (Sandbox Code Playgroud)

但它的表现很差.

我还在stackoverflow上找到了一个建议:https://stackoverflow.com/q/3118918/1066838 但是只绘制了最后设置的数据,所以我总是看到图中只有一个点.

matlab

7
推荐指数
1
解决办法
3万
查看次数

Boost.Asio链接错误

我正在尝试通过串口访问外部设备,并希望使用Boost.Asio来实现此建议.我为MinGw构建了boost库并成功编译了正则表达式示例.

但是如果我包含来自Boost.Asio的内容,我在编译代码时遇到问题:

#include <boost/asio/serial_port.hpp>

int main() {

    return 0;
}

g++ -D _WIN32_WINNT=0x0501 -O0 -g3 -Wall -c -fmessage-length=0 -osrc\SerialPortTest.o ..\src\SerialPortTest.cpp
g++ -LC:\boost-libs\boost\bin.v2\libs\thread\build\gcc-mingw-4.5.2\release\link-static\threading-multi -LC:\boost-libs\boost\bin.v2\libs\system\build\gcc-mingw-4.5.2\release\link-static\threading-multi -oSerialPortTest.exe src\SerialPortTest.o -lboost_thread-mgw45-mt-1_48 -lboost_system-mgw45-mt-1_48
src\SerialPortTest.o: In function `ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh':
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../include/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to `WSAStartup@8'
src\SerialPortTest.o: In function `ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE':
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../include/boost/asio/detail/impl/winsock_init.ipp:48: undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

对我来说,它似乎是一个链接问题,但我不明白.

c++ boost mingw

5
推荐指数
1
解决办法
3842
查看次数

UDP 数据包被 Linux 内核丢弃

我有一个通过多播发送 UDP 数据包的服务器和一些列出这些多播数据包的客户端。每个数据包的固定大小为 1040 Bytes,服务器发送的整个数据大小为 3GByte。

我的环境如下:

1 Gbit 以太网络

40 个节点,1 个发送节点和 39 个接收节点。所有节点具有相同的硬件配置:2 个 AMD CPU,每个 CPU 有 2 个内核 @2,6GHz

在客户端,一个线程读取套接字并将数据放入队列中。一个额外的线程从队列中弹出数据并进行一些轻量级处理。

在多播传输期间,我发现节点侧的丢包率为 30%。通过观察 netstat –su 统计信息,我可以说,客户端应用程序丢失的数据包等于来自 netstat 输出的 RcvbufErrors 值。

这意味着所有丢失的数据包都被操作系统丢弃,因为套接字缓冲区已满,但我不明白为什么捕获线程无法及时读取缓冲区。在传输过程中,4 个内核中的 2 个使用了 75%,其余的处于休眠状态。我是唯一一个使用这些节点的人,我认为这种机器处理 1Gbit 带宽没有问题。我已经做了一些优化,通过为 amd cpus 添加 g++ 编译器标志,这将丢包率降低到 10%,但我认为它仍然太高。

当然我知道UDP不可靠,我有自己的修正协议。

我没有任何管理权限,因此我无法更改系统参数。

任何提示如何提高性能?

编辑:我通过使用 2 个读取套接字的线程解决了这个问题。recv 套接字缓冲区有时仍会变满。但是平均下降不到1%,所以处理起来不是问题。

linux udp multicast packet-loss

5
推荐指数
2
解决办法
2万
查看次数

XPath表达式评估错误

我尝试解析一个大的XML文件,我正在使用很多相对路径的XPath表达式.

现在我遇到了.net XPath评估的麻烦.

这是一个解释我问题的小例子:

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
</book> 
</bookstore>
Run Code Online (Sandbox Code Playgroud)

以下是代码:

static void Main(string[] args)
{
    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
    d.Load(@"D:\simpleXml.xml");

    System.Diagnostics.Trace.WriteLine(d.SelectSingleNode("//price/..[year=\'2005\']").Name);
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:附加信息:'//price /.. [year ='2005']'有一个无效的令牌.

对我来说,它似乎是一个有效的XPath表达式,因为像XMLSpy这样的其他工具会成功地评估该表达式.

.net c# xml

5
推荐指数
1
解决办法
264
查看次数

标签 统计

.net ×1

boost ×1

c# ×1

c++ ×1

linux ×1

matlab ×1

mingw ×1

multicast ×1

packet-loss ×1

udp ×1

xml ×1