问题列表 - 第2042页

.NET没有可靠的异步套接字通信?

我曾经在.NET中编写了一个Crawler.为了提高其可伸缩性,我尝试利用.NET的异步API.

System.Net.HttpWebRequest具有异步API BeginGetResponse/EndGetResponse.但是,这对API只是为了获取HTTP响应头和Stream实例,我们可以从中提取HTTP响应内容.所以,我的策略是使用BeginGetResponse/EndGetResponse来异步获取响应Stream,然后使用BeginRead/EndRead从响应Stream实例异步获取字节.

在Crawler进行压力测试之前,一切看起来都很完美.在压力测试下,Crawler遭受高内存使用.我用WinDbg + SoS检查了内存,并说明System.Threading.OverlappedData实例有很多字节数组.经过一些互联网搜索后,我从微软发现了这个KB http://support.microsoft.com/kb/947862.

根据KB,异步I/O的数量应该具有"上限",但它不会告诉"建议的"绑定值.所以,在我看来,这个KB没有任何帮助.这显然是一个.NET错误.最后,我不得不放弃从响应Stream中异步提取字节的想法,而只是以同步方式进行.

允许带有点网络套接字的异步IO的.NET库(Socket.BeginSend/Socket.BeginReceive/NetworkStream.BeginRead/NetworkStream.BeginWrite)必须具有其异步IO的未完成缓冲区(发送或接收)数量的上限.

网络应用程序应该具有其发布的未完成异步IO 数量的上限 .

编辑:添加一些问号.

任何人都有在Socket和NetworkStream上进行异步I/O的经验吗?一般来说,生产中的爬虫是否通过同步或异步的互联网进行I/O操作?

.net c# sockets stream web-crawler

9
推荐指数
2
解决办法
4860
查看次数

如何通过不同的std :: vector的值对std :: vector进行排序?

我有几个std::vector,全长相同.我想对这些向量中的一个进行排序,并将相同的变换应用于所有其他向量.这样做有一个简洁的方法吗?(最好使用STL或Boost)?一些向量包含ints,其中一些包含std::strings.

伪代码:

std::vector<int> Index = { 3, 1, 2 };
std::vector<std::string> Values = { "Third", "First", "Second" };

Transformation = sort(Index);
Index is now { 1, 2, 3};

... magic happens as Transformation is applied to Values ...
Values are now { "First", "Second", "Third" };
Run Code Online (Sandbox Code Playgroud)

c++ sorting boost stl vector

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

如何将预格式化的文本放入FitNesse夹具表格单元格?

我希望能够将预先格式化的文本(即包含换行符)放入FitNesse夹具表的单个单元格中.有没有办法操纵FitNesse wiki标记来做到这一点?

fitnesse

8
推荐指数
1
解决办法
6153
查看次数

如何将曲线拟合到直方图分布?

前几天有人通过电子邮件向我询问了一个关于整数分区的问题(因为我发布了一个Perl模块,Integer :: Partition来生成它们),我无法回答.

背景:这里是7的所有整数分区(每行的总和等于7).

7
6 1
5 2
5 1 1
4 3
4 2 1
4 1 1 1
3 3 1
3 2 2
3 2 1 1
3 1 1 1 1
2 2 2 1
2 2 1 1 1
2 1 1 1 1 1
1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

现在,如果我们查看每个分区的长度并计算每个分区的长度:

1 1
2 3
3 4
4 3
5 2
6 1
7 1
Run Code Online (Sandbox Code Playgroud)

...我们看到一个分区的长度为1(7),一个分区的长度为7(1 1 1 1 1 1 1).有4个分区长度为3:(5 …

perl integer equation curve-fitting data-partitioning

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

当设置doctype时,为什么h1标签在div中显示不同?

我有一个带div <h1>标签的div,没有边距.如果我定义任何doctype,div上方会出现一个空格.

如果我删除<h1>标签,或删除doctype定义,则没有空间(应该有.为什么?

示例HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <style>
        body { 
          margin:0
        }
        #thediv {
          background-color:green
        }
    </style>
</head>
<body>
    <div id="thediv">
        <h1>test</h1>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

问题是绿色div上方的空间,移除DOCTYPE并且空间消失,将<h1>标签更改为 <b>,空间也消失.它适用于任何doctype(XHTML/HTML,严格/过渡/等)

几乎在所有浏览器中都有用(使用http://browsershots.org).有趣的是,似乎唯一正确显示它的浏览器是Internet Explorer 6.0 ..

html css

4
推荐指数
1
解决办法
2512
查看次数

Java - 包含变量的抽象类?

让抽象类定义实例变量是一种好习惯吗?

public abstract class ExternalScript extends Script {

    String source;

    public abstract void setSource(String file);

    public abstract String getSource();
}
Run Code Online (Sandbox Code Playgroud)

然后子类ExternalJavaScript.class将自动获取源变量,但是如果所有子类本身都定义了源代码而不是继承,我觉得读代码更容易.

你有什么建议?

/亚当

java variables class abstract

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

是否有Windows窗体本机方式来刷新表单的标题栏?

Windows窗体中是否有正确的方法来刷新标题栏而不必放到P /调用FlashWindow?

我使用.NET 2.0是出于兼容性和大小的原因,所以也许我只是错过了这个方法,因为它是在较新版本的.NET框架中.

.net winapi .net-2.0

2
推荐指数
1
解决办法
1016
查看次数

如何为我的应用程序选择多播地址?

我应该如何为我的应用程序选择IPv4多播地址?我可能需要多个(最终可能是整个范围),但只是想避免与其他应用程序冲突.

  • 数据包将完全包含在管理域中,可能是LAN
  • 如果我的应用程序的几个独立实例在同一网络上使用,他们每个都可以使用自己的多播地址 - 但如果他们不这样做,他们将能够共存,他们只会忽略少量开销彼此的包裹.
  • 我的数据包已经包含一个"幻数"以避免出现问题
  • 我将检查发起人地址(我知道当然可以欺骗),TTL和其他事情,以防止意外的数据包混乱.

想法请:)

目前我刚从"本地使用"空间分配了一个任意的空间,239.255.42.99

networking udp multicast ipv4

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

根据它们的值,在它们自己的列中排

我有一个选择查询,当前产生以下结果:

Description   Code    Price
 Product 1     A        5
 Product 1     B        4
 Product 1     C        2
Run Code Online (Sandbox Code Playgroud)

使用以下查询:

SELECT DISTINCT np.Description, p.promotionalCode, p.Price
FROM            Price AS p INNER JOIN
                         nProduct AS np ON p.nProduct = np.Id
Run Code Online (Sandbox Code Playgroud)

我想生产以下内容:

Description  A  B  C
 Product 1   5  4  2
Run Code Online (Sandbox Code Playgroud)

sql select

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

使用SQLite查找查询中行的差异

我有一个SQLite表,其中包含各种产品的价格.它是一个快照表,因此它包含5分钟间隔的价格.我想写一个查询,将每个项目的价格差异从一行返回到下一行.

列是id(自动公司),record_id(产品的ID),价格(该时间点的价格),时间(自纪元以来仅几秒)

我正在尝试返回一个"差异"列,其中包含间隔之间的差异值.

Given the following

id      record_id       price   time
1       apple001        36.00   ...
67      apple001        37.87   ...
765     apple001        45.82   ...
892     apple001        26.76   ...

I'd like it to return
id      record_id       price   time    difference
1       apple001        36.00   ...     0
67      apple001        37.87   ...     1.87
765     apple001        45.82   ...     7.95
892     apple001        26.76   ...     -19.06

是否可以使用SQLite?

其次,如果可能的话 - 是否有办法将其限制在最后5个左右的记录中?

我很感激任何帮助,谢谢.


只想添加一些东西.我已经找到了在其他数据库中这样做的方法,但我使用的是XULRunner,因此也就是SQLite.这就是我正在使用它的原因.

第二个问题可能需要澄清,我希望按时间顺序排序并分析最后5条记录.如果需要,这是我可以单独解决的问题.

这是一个MySQL 解决方案,有点像.这是我正朝着的方向,但交易破坏者是"如果表格包含一个序列列,但有间隙,重新编号.如果表格中没有这样的列,请添加一个".根据设计,这种情况存在差距,因为有许多记录一次更新而且不会按顺序更新.

sql sqlite xulrunner limit

6
推荐指数
2
解决办法
4474
查看次数