Tag: 堆栈

在哪里可以findSun / Oracle JVM的默认XSS值?

有没有人发现过一个单独的JVM文档,列出了不同版本的Sun / Oracle JVM和不同OS的default XSS sizes ? 我已经能够在jrockit jdk 5.0文档中find这张表,但这对于那些使用“普通”Sun / Oracle JVM的用户来说并没有什么帮助。 我很欣赏XSS值会根据操作系统(和JVM版本)而变化,所以也许没有一个文档列出了所有最近的组合。 但是,如果这里的读者知道任何单个文档, 每个 JVM版本的默认XSS值(或者至less1.6和1.5),或者甚至仅仅是某些操作系统,那么这将是一个很好的开始。 我会补充一点,这很有价值的原因是我们经常看到有人推荐(错误地认为)有人可以通过改变XSS值来解决问题。 但是,如果您不知道自己的默认值,那么无法通过别人推荐的任何更改来知道是否提高或降低了价值。 他们通常不会指出他们所使用的版本/操作系统,所以他们的build议是否会“帮助”你是一个废话。 甚至比一些文档更好,如果有人知道一种方法来查询JVM以获取当前值,无论是从命令行还是通过API调用,这将是更有价值的。 谢谢。

ServiceStack示例应该按什么顺序进行维护?

出于好奇,我喜欢根据技术水平和示例的新api知道首选的顺序。 在大多数情况下,所有的基础设施基础设施问题都有同样的问题,即设置主机等,但是涉及服务模型,服务接口和端点设置,这是最新的和首选的? 谢谢,斯蒂芬

怪异的MSC 8.0错误:“ESP的值没有正确保存在一个函数调用…”

我们最近试图将我们的一些Visual Studio项目拆分成库,并且一切似乎都在一个testing项目中编译和构build,其中一个库项目作为依赖项。 但是,试图运行该应用程序给了我们下面的令人讨厌的运行时错误消息: 运行时检查失败#0 – ESP的值在函数调用中未正确保存。 这通常是调用用不同调用约定声明的函数指针的结果。 我们甚至从来没有为我们的函数指定调用约定(__cdecl等),使所有编译器开关保持默认状态。 我检查了一下,项目设置对于在库和testing项目中调用约定是一致的。 更新:我们的一个开发人员将“基本运行时间检查”项目设置从“Both(/ RTC1,equiv。to / RTCsu)”更改为“Default”,运行时间消失,程序运行显然正常。 我完全不信任这个。 这是一个合适的解决scheme,还是一个危险的黑客?

ServiceStack请求DTOdevise

我是一个.Net开发者,用于在Microsoft Technologies上开发Web应用程序。 我正试图教育自己了解REST Web服务的方法。 到目前为止,我很喜欢ServiceStack框架。 但是有时候我发现自己以我习惯WCF的方式编写服务。 所以我有一个问题让我感到困惑。 我有2个请求DTO的这样的2个服务: [Route("/bookinglimit", "GET")] [Authenticate] public class GetBookingLimit : IReturn<GetBookingLimitResponse> { public int Id { get; set; } } public class GetBookingLimitResponse { public int Id { get; set; } public int ShiftId { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; […]

为什么堆上的内存分配比堆栈上慢?

我已经多次被告知。 但我不知道为什么…从堆中分配内存需要多less额外的成本? 与硬件相关吗? 它与CPU周期有关吗? 这么多的猜测,但没有确切的答案…有人可以给我一些阐述? 就像“放松”一样,堆数据结构比堆栈更复杂。 而在我看来,一些内存空间在开始运行时被分配给一个线程作为它的堆栈,而堆被一个进程内的所有线程共享。 这种范例需要一些额外的机制来pipe理每个线程对共享堆的使用,比如垃圾收集。 我对吗?

为什么堆栈溢出仍然是一个问题?

这个问题多年来让我感到迷惑,考虑到这个网站的名字,这是要问的地方。 为什么我们程序员仍然有这个StackOverflow问题? 为什么在每一种主要语言中,线程堆栈的内存都必须在创build线程时静态分配? 我将在C#/ Java的背景下讲,因为我使用它们最多,但这可能是一个更广泛的问题。 固定的堆栈大小会导致巨大的问题: 除非你确定recursion的深度很小,否则没有办法写一个recursionalgorithm。 recursionalgorithm的线性内存复杂度通常是不可接受的。 没有便宜的方法来开始新的线程。 你必须为堆栈分配巨大的内存块来说明线程的所有可能的用途。 即使不使用非常深的recursion,由于堆栈大小是一个任意的固定数字,您总会有堆栈空间不足的风险。 考虑到StackOverflow通常是不可恢复的,这是我眼中的一个大问题。 现在,如果dynamic调整堆栈大小,上述所有问题都将得到缓解,因为堆栈溢出只有在存在内存溢出时才可能发生。 但事实并非如此。 为什么? 现代CPU有没有一些基本的限制,会使它变得不可能/效率低下? 如果你考虑重新分配会带来的性能问题,那么应该是可以接受的,因为人们ArrayList使用像ArrayList这样的结构而不会受到太大的影响。 所以,问题是,我错过了什么, StackOverflow是不是一个问题,或者我错过了一些东西,有很多语言与dynamic堆栈,还是有一些很大的原因,这是不可能的/难以实现? 编辑:有人说,performance将是一个大问题,但考虑到这一点: 我们保持编译的代码不变。 堆栈访问保持不变,因此“通常情况下”的性能保持不变。 我们处理当代码尝试访问未分配的内存并启动我们的“重新分配”例程时发生的CPUexception。 重新分配将不会经常发生,因为<将您通常的ArrayList参数放在这里>。 应该在大多数保护模式CPU上工作而不会损失性能。 没有?

Android从后面堆栈移除活动

好吧,所以我有点不知所措。 所以我有MainActivity,并从那里一个活动可以启动DegreePlanActivity,从那里另一个活动可以启动到EditDegreePlan。 我在AndroidManifest中将EditDegreePlan设置为noHistory。 问题是在他们保存EditDegreePlan后,它启动一个Activity到DegreePlan。 所以,如果用户按下后退,他们必须按两次再次到达MainActivity。 我想摆脱这一点,所以他们只需要按一次。 我很困难如何做到这一点。 如果我将DegreePlanActivity设置为noHistory,那么在EditDegreePlan中,他们不能按回到它。 我试着重写onBackPressed方法并启动MainActivity的意图。 那么问题是,他们必须多次按下退出应用程序。 我该怎么办?

当堆栈和堆相互碰撞时会发生什么

我很想知道堆栈和堆相冲突时会发生什么。 如果有人遇到这种情况,请他们解释一下情况。 提前致谢。

x86汇编寄存器中使用的push / pop指令的function是什么?

在阅读汇编程序时,我经常遇到一些人,他们会推送一个处理器的某个寄存器,稍后再popup来恢复它以前的状态。 你怎么能推注册? 它在哪里推? 为什么这需要? 这是归结为一个单一的处理器指令还是更复杂?

iOS如何在顶视图控制器popup时以编程方式检测?

假设我有一个带有2个视图控制器的导航控制器堆栈:VC2在顶部,VC1在下面。 VC1中是否有代码可以检测到VC2刚从堆栈中popup? 由于我试图从VC1的代码中检测到VC2的popup,看起来像viewWillAppear或viewDidAppear这样的东西将不起作用,因为这些方法每次显示VC1时都会触发,包括当它被第一次推入堆栈时。 编辑:似乎我不是很清楚我的原始问题。 这是我想要做的:确定何时显示VC1,因为VC2被从栈顶popup。 这是我不想做的事情:确定何时显示VC1由于被推到堆栈的顶部。 我需要一些方法来检测第一个动作,而不是第二个动作。 注意:我并不特别关心VC2,它可以是任意数量的其他VC从堆栈中popup,我所关心的是当VC1由于某些其他VC开始popup而再次成为堆栈顶部时最佳。