如何区分重载operator ++的2个版本?
const T& operator ++(const T& rhs)
Run Code Online (Sandbox Code Playgroud)
哪一个?
i++;
++i;
Run Code Online (Sandbox Code Playgroud) 如果我在Eclipse中打开两个相互依赖的Java项目,我必须在构建路径(属性 - > Java构建路径)中添加这两个项目之间的依赖关系.这对单向工作正常,但为什么不允许Eclipse设置依赖,反之亦然?出现以下错误消息:
在项目"A"的构建路径中检测到一个循环
和
在项目'B'的构建路径中检测到一个循环
我知道是什么导致了这个错误,但我想知道为什么这是不允许的.谢谢.
我正在构建一个工具,可以从一台服务器向另一台服务器传输非常大的流数据集(可能在单个流中的数量级为TB,通常为几十千兆字节).该工具的客户端部分将从源磁盘读取块,并通过网络发送它们.服务器端将从网络中读取这些块并将其写入服务器磁盘上的文件.
现在我正在尝试决定使用哪种传输方式.选项是原始TCP和HTTP.
我真的,真的希望能够使用HTTP.HttpListener(或WCF,如果我想去那条路线)可以很容易地插入HTTP Server API(http.sys),我可以免费获得身份验证和SSL之类的东西.现在的问题是表现.
我编写了一个简单的测试工具,使用BeginWrite/EndWrite异步I/O惯用法,在服务器端使用异步BeginRead/EndRead发送128K块空字节.我已经修改了这个测试工具,所以我可以通过HttpWebRequest/ 使用HTTP PUT操作HttpListener,或使用TcpClient/进行普通的旧套接字写操作TcpListener.要排除网卡或网络路径的问题,客户端和服务器都在一台计算机上并通过localhost进行通信.
在我的12核Windows 2008 R2测试服务器上,此测试工具的TCP版本可以以450MB/s的速度推送字节,并且CPU使用率最低.在同一个盒子上,测试工具的HTTP版本在130MB/s和200MB/s之间运行,具体取决于我如何调整它.
在这两种情况下,CPU使用率都很低,并且CPU使用的绝大部分是内核时间,所以我很确定我对C#和.NET运行时的使用不是瓶颈.这个盒子有两个6核Xeon X5650处理器,24GB单排DDR3内存,我自己专门用于自己的性能测试.
我已经知道HTTP客户端的调整一样ServicePointManager.MaxServicePointIdleTime,ServicePointManager.DefaultConnectionLimit,ServicePointManager.Expect100Continue,和HttpWebRequest.AllowWriteStreamBuffering.
有没有人对如何使HTTP.sys性能超过200MB/s有任何想法?有没有人看到它在任何环境下表现都很好?
更新:
下面是关于我与看到的表现更多的细节TcpListenerVS HttpListener:
首先,我写了一个TcpClient/TcpListener测试.在我的测试盒上,能够推动450MB/s.
然后使用反射器我想出了如何获取HttpWebRequest底层的原始Socket对象,并修改了我的HTTP客户端测试以使用它.仍然没有快乐; 差不多200MB/s.
我目前的理论是http.sys针对典型的IIS用例进行了优化,这是一个很多并发的小请求,以及大量并发和可能很大的响应.我假设为了实现这种优化,MSFT必须以牺牲我正在努力实现的目标为代价,这是一个非常大的请求的非常高的吞吐量,响应非常小.
为了它的价值,我还尝试了多达32个并发HTTP PUT操作,看它是否可以扩展,但仍然没有乐趣; 大约200MB/s.
有趣的是,在我的开发工作站上,运行64位Windows 7的四核Xeon Precision T7400,我的TcpClient实现大约200MB/s,HTTP版本也大约200MB/s.一旦我将它带到运行Server 2008 R2的高端服务器级机器,TcpClient代码就会达到450MB/s,而HTTP.sys代码则保持在200左右.
在这一点上,我遗憾地得出结论,HTTP.sys不是我需要完成的工作的正确工具,并且将不得不继续使用我们一直使用的手动插槽协议.
我正在使用ScrollViewer来显示图像.Image将ScaleTransform设置为LayoutTransforms之一.我已经设置好将图像的宽度调整到ScrollViewer的ActualSize中.我的问题是,如果图像高度需要存在垂直滚动条(我将其设置为自动),那么我的图像会缩放一点点.我知道如何确定滚动条是否存在以及如何获得正确的比例,但我无法弄清楚如何确定滚动条的实际宽度.我想我可以猜它,但是如果我稍后在我的应用程序中添加样式会导致滚动条的大小不同,我想要一些可行的东西.另外,我也正在做适合高度,并且当它可见时需要获得水平滚动条的高度(我假设获得垂直滚动条的宽度的答案将使得获得水平滚动条的高度明显).
我试图使用jquery 1.4和jquery-ui-1.8rc3.custom.js打开模态jquery对话框
在所有浏览器中,对话框打开都没有问题,但在IE 7和6中,对话框打开后,窗口自动滚动到按钮...我尝试将窗口向上滚动回到模态位置但是非常不一致.打开模态后使用以下代码行
window.scrollTo($('#selector').dialog('option', 'position')[0],$('#selector').dialog('option', 'position')[1]);
Run Code Online (Sandbox Code Playgroud)
我注意到的一个奇怪的事情是,在我打开模态之后,页面变得巨大......好像一些额外的东西加在底部......它最终滚动到底部.任何想法为什么这可能是hapenning
在HTML中
<div id="selector">
</div>
Run Code Online (Sandbox Code Playgroud)
在document.ready
$('#selector').dialog({
bgiframe: true,
autoOpen: false,
width: 100,
height: 100,
modal: true,
position: 'top'
});
Run Code Online (Sandbox Code Playgroud)
在js
$('#selector').dialog('open');
Run Code Online (Sandbox Code Playgroud) 我想创建一个SQL Azure用户并授予她对少数几个DB的只读访问权限,我可以使用哪个脚本来实现这一目标?
这太疯狂了.它开始在我的主项目中发生,所以我创建了一个小样本全新的项目来重现它,当然,它确实不会发生在我创建的只是Win32控制台应用程序的示例项目中.
我在Win7x64上运行它,如果这很重要的话.VS2008 SP1.
开始.我用按钮创建一个小对话框应用程序.在该按钮的处理函数中放置一个断点.按钮处理程序函数如下所示:
void CTestProjectDlg::OnBnClickedButton1()
{
int i;
i = 2; // < breakpoint here
i = 3;
}
Run Code Online (Sandbox Code Playgroud)
单击按钮,点击断点.F10步骤和繁荣:"TestProject.exe中0x0398f77b的第一次机会异常:0xC0000005:访问冲突."
它让我可以选择Break或Continue.如果我继续,它只会再击中它,而不是"第一次机会".是的我在Debug-> Exceptions dlg中检查了该异常.
如果我中断,调用堆栈只显示断点所在的行.如果我再次 F10 ..我再次得到异常,只是现在callstack在_AfxDispatchCmdMsg()函数中显示我,并且我的原始OnBnClickedButton1()不再在callstack中.
我把断点放在哪里都没关系.
如果,而不是F10,我只是继续使用F5,它可以正常工作.
现在..如果我构建一个Release版本并在调试模式下运行:我点击断点,所有指针,变量值看起来正常.F10,这些转向垃圾.此指针现在为零.m_csHello现在
但是,在发布模式下,未捕获异常,并且一切正常."hello World string"会在对话框中显示出来.
我已经进行了一项调查,看看IT部门是否在最后一两天内在我的盒子上安装了一些补丁.这种情况在2天前没有发生.
你怎么看?VS2008是否已损坏?
谢谢.
编辑:附加信息.如果我构建/调试x64平台,则不会发生这种情况.仅适用于Win32.
我还看了一下VS2008的所有修补程序/安全更新.他们是
最后,我将项目放在过去2-3周未更新的其他计算机上.它可以在那里找到它,它安装了这些相同的VS更新.
为了这篇文章的目的,我还修改了正在替换的代码...这是一个简单的整数赋值,不涉及MFC.
目前我正在重新安装VS2008.
我有一个标签栏应用程序,有很多视图.有没有办法知道某个特定UIViewController目前是否可以从内部看到UIViewController?(寻找房产)
我喜欢在Mercurial中创建命名分支来处理可能需要一段时间来编写代码的功能,所以当我推送时我会hg push -r default确保我只是将更改推送到默认分支.但是,-r default每次执行推送或传出命令时都必须记住这一点.
所以我尝试通过将此配置添加到我的〜/ .hgrc来解决此问题:
[defaults]
push = push -r default
outgoing = outgoing -r default
Run Code Online (Sandbox Code Playgroud)
问题是,那些配置行不是真正的默认值,它们是别名.他们按照预期工作,直到我尝试做hg push -r <some revision>.我设置的"默认"只是删除了我传入的修订版.(我看到默认值已弃用,但别名有同样的问题).
我试着环顾四周,但我找不到任何可以让我设置默认分支的东西,并允许我在必要时覆盖它.谁知道我能做的其他事情?
ps:我确实意识到每个分支都可以有单独的克隆,但我宁愿不这样做.必须切换目录很烦人,特别是当您有共享配置或编辑器工作区时.
是否可以将Visual C++ 2010中的新lambda表达式用作CLR事件处理程序?我试过以下代码:
SomeEvent += gcnew EventHandler(
[] (Object^ sender, EventArgs^ e) {
// code here
}
);
Run Code Online (Sandbox Code Playgroud)
它会导致以下错误消息:
错误C3364:'System :: EventHandler':委托构造函数的参数无效; 委托目标需要是指向成员函数的指针
我是在尝试不可能的,还是仅仅是我的语法错误?
.net ×2
c# ×2
branch ×1
c++ ×1
c++-cli ×1
class ×1
debugging ×1
delegates ×1
dvcs ×1
eclipse ×1
events ×1
http.sys ×1
ios ×1
java ×1
jquery ×1
lambda ×1
mercurial ×1
mfc ×1
performance ×1
position ×1
scroll ×1
scrollviewer ×1
sql ×1
sql-server ×1
struct ×1
t-sql ×1
templates ×1
uiview ×1
uiwindow ×1
wpf ×1