我有一段代码需要使用UNC路径从NAS服务器打开和读取大量小文本文件.此代码是最初用C++编写但现在转换为C#的模块的一部分.C#版本明显变慢了.我确定打开文件的调用几乎占据了所有的性能差异.使用WireShark我发现这是因为System.IO.File.Open调用比类似的C++代码产生更多的SMB网络请求.
C++代码进行此调用:
FILE *f = _wfsopen(fileName, L"r", _SH_DENYWR);
Run Code Online (Sandbox Code Playgroud)
这导致以下SMB请求序列:
NT Create AndX Request, FID: 0x0004, Path: \\a\\i\\a\\q\\~141106162638847.nmd
NT Create AndX Response, FID: 0x0004
Trans2 Request, QUERY_FILE_INFO, FID: 0x0004, Query File Basic Info
Trans2 Response, FID: 0x0004, QUERY_FILE_INFO
Read AndX Request, FID: 0x0004, 1327 bytes at offset 0
Read AndX Response, FID: 0x0004, 1327 bytes
Close Request, FID: 0x0004
Close Response, FID: 0x0004
NT Create AndX Request, FID: 0x0005, Path: \\a\\i\\a\\q\\~141106162638847.nmd
NT Create AndX Response, FID: 0x0005
Run Code Online (Sandbox Code Playgroud)
C#代码进行此调用:
FileStream f = …Run Code Online (Sandbox Code Playgroud) 如果我想引用一行行,我可以做类似的事情A1:A100.如果我想锁定我可以使用的列/行$; $A1:$A100.
是否有表示无限范围的符号或符号,或者可能位于列中的每一行?
有什么喜欢$A!或什么?
复杂的标题,让我解释一下.
我想推送到master分支时限制自动POST挂钩; 所以当我推到dev分店时它不会开火.这样,只有在合并了更改master并且new master通过单元测试时,应用才会部署到实时服务器.
这可能吗?
: 1 < 2 < 3
true
: 3 > 2 > 1
false
...
...
: 3 > 2 && 2 > 1
true
Run Code Online (Sandbox Code Playgroud)
也许我真的在思考问题,但我认为他们都会评价为真.为什么不呢?