我创建了一个ASMX Web服务,它在场景后面做一些Active Directory的工作.
由于我希望在用户会话下保留Web服务中的某些信息,我决定放入 [WebMethod(EnableSession = true)]并开始使用Session变量.
但是,当我打开该选项时,来自app - > web service - > app的返回时间变得非常漫长.(大约一分钟或更长时间).
如果我删除[WebMethod(EnableSession = true)],它是相当快的.
有谁知道发生了什么?
我们知道我们可以使用按位运算符来划分任意两个数字.例如:
int result = 10 >> 1; //reult would be 5 as it's like dividing 10 by 2^1
Run Code Online (Sandbox Code Playgroud)
我们有没有机会使用位操作将数字除以0?
编辑1:如果我改写我的问题,我想实际将数字除以零并破坏我的机器.我怎么做?
编辑2:让我们暂时忘掉Java.无论使用何种编程语言,机器是否可以将数字除以0?
编辑3:由于实际上不可能这样做,有没有办法我们可以使用接近0的非常小的数字来模拟这个?
另一个编辑:有人提到CPU硬件阻止除以0.我同意,没有直接的方法来做到这一点.让我们看一下这段代码:
i = 1;
while(0 * i != 10){
i++;
}
Run Code Online (Sandbox Code Playgroud)
我们假设最大值没有上限i.在这种情况下,没有编译器错误,CPU也不会抵制这一点.现在,我希望我的机器能够找到与0相乘的数字给出一个结果(显然永远不会发生)或者尝试死亡.
所以,有一种方法可以做到这一点.如何通过直接操作位来实现这一目的?
最终编辑:如何在不使用按位运算符的情况下在Java中执行二进制除法?(对不起,这纯粹与标题相矛盾).
注意:我尝试用0模拟divison并发布了我的答案.但是,我正在寻找一种更快的方法.