如何让XMLRPC.NET与perl速度相匹配?

时间:2014-10-17 10:50:22

标签: c# c++ perl xml-rpc

我有一个用C ++编写的xmlrpc服务器(使用libxmlrpc++)。它提供了一个返回字符串的函数getversion()

  • Perl(使用RPC::XML::Client)拨打,100拨打1.25。

  • C#using XMLRPC.NET)拨打电话,100拨打50.322。

这是在Windows7 Pro上运行。

有什么想法,以及如何修复它?

[XmlRpcUrl("http://localhost:9000/RPC2")]
public interface ICutControl : IXmlRpcProxy
{
  [XmlRpcMethod]
  string getversion();
}

class Program
{
  public static void do_test()
  {
    ICutControl proxy;

    proxy = XmlRpcProxyGen.Create<ICutControl>();

    int count = 100;
    try
    {
      for (int i = 0; i < 100; i++)
      {
        string version = proxy.getversion();
        Console.WriteLine("{0}:{1}", i, version);
      }
    }
    catch (System.Net.WebException ex)
    {
      Console.Error.WriteLine("exception: {0}", ex.Message);
    }
  }
  proxy = null;
}

[更新]

我尝试过压缩,但它并没有什么不同。由于这似乎发生在客户端,没有重新启动服务器,我没有想法。 我使用的perl是cygwin。我在下面添加了perl。

#!/usr/bin/perl

use warnings;
use strict;
use RPC::XML;
use RPC::XML::Client;

my $url = 'http://localhost:9000/RPC2';

my $cli = RPC::XML::Client->new($url);

for (my $i = 0; $i < 100; $i++) {
  my $resp = $cli->send_request('getversion', ());
  print "version:", $resp->value, "\n";
}

[更新]

我没有找到关于为什么XMLRPC.NET变慢的答案。

但是通过在libxmlrpc ++库周围编写C ++ / CLR包装器,我的速度提高了100倍。

0 个答案:

没有答案