stack-size相关内容

计算方法调用堆栈大小以检查 StackOverflowException

今天早上我回答了一个与 StackoverflowException 相关的问题.该人已询问何时发生 Stackoverflow 异常 查看此链接最简单的方法在 C#、C++ 和 Java 中导致堆栈溢出 所以我的问题是,是否有任何方法可以在我们的程序中动态计算方法调用堆栈的大小,然后在调用方法之前应用检查来检查方法调用堆栈是否有空间来容纳它以防止堆栈溢出异常. 由于我是 jav ..
发布时间:2022-01-22 12:56:37 Java开发

Cmake 更改堆栈大小

有没有办法从 Cmake 更改堆栈大小? 我只发现一个 论坛帖子 提到CMAKE_CXX_STACK_SIZE 但我找不到此命令的文档.理想情况下,该命令应该适用于 Visual Studio C++ 和 gcc. 解决方案 我目前没有 VS,但是以下三个 CMake 命令在 MinGW/GCC 上都适用于我(替换 与您在 add_executable()) 中输入的内 ..
发布时间:2022-01-22 12:36:45 其他开发

Python 线程 stack_size 和 segfaults

一个网络爬虫脚本,最多生成 500 个线程,每个线程基本上都请求从远程服务器提供的某些数据,每个服务器的回复在内容和大小上都与其他服务器不同. 我将线程的 stack_size 设置为 756K threading.stack_size(756*1024) 这使我能够拥有足够数量的所需线程并完成大部分作业和请求.但是由于某些服务器的响应比其他服务器大,并且当一个线程获得这种响应时,脚本会 ..
发布时间:2022-01-12 16:29:25 Python

MATLAB 的堆栈大小是多少?

MATLAB R2018a(64 位)的默认堆栈大小是多少? 堆栈大小似乎大于 64 位 C# 程序. 我为什么这么问 我问这个问题是因为我打电话给英特尔 MKL LAPACKE_dtrtri 这是高度递归的. 我在 .NET 应用程序中使用该函数,从 C# 调用它时出现堆栈溢出错误,请参阅 BackgroundWorker DoWork 线程的堆栈大小是多少?有办法改吗? ..
发布时间:2021-11-25 06:49:59 C#

增加主程序的堆栈大小或为递归代码块创建一个具有更大堆栈大小的新线程?

我有一个后续问题什么是BackgroundWorker DoWork 线程的堆栈大小?有办法改吗? 我是否应该使用以下构建后事件增加主程序的堆栈大小: "$(DevEnvDir)..\..\VC\bin\editbin.exe"/STACK:8388608 "$(TargetPath)" 或者我应该将我的递归代码块封装在一个具有更大堆栈大小的新线程中吗? Thread thread = ..
发布时间:2021-11-24 10:17:35 C#/.NET

增加主程序的堆栈大小或为递归代码块创建一个具有更大堆栈大小的新线程?

我有一个后续问题什么是BackgroundWorker DoWork 线程的堆栈大小?有办法改吗? 我是否应该使用以下构建后事件增加主程序的堆栈大小: "$(DevEnvDir)..\..\VC\bin\editbin.exe"/STACK:8388608 "$(TargetPath)" 或者我应该将我的递归代码块封装在一个具有更大堆栈大小的新线程中吗? Thread thread = ..
发布时间:2021-11-24 10:16:22 C#/.NET

哪种语言/平台没有固定的堆栈大小?

某些语言或平台是否没有固定大小的堆栈,因此不容易溢出?我记得在 UNIX 上使用 C 时,堆栈很难溢出,而在 Win 3.1 的时代,堆栈非常容易溢出. 解决方案 如果说“堆栈"是指任何旧堆栈,大多数语言都会这样做——Java 有一个 stack 类仅受内存限制.您更有可能指的是调用堆栈,在这种情况下,我能想到的最大示例是 Stackless Python,其中,据我所知,使用纯 pyth ..
发布时间:2021-08-28 18:38:43 其他开发

Windows 上的线程堆栈大小 (Visual C++)

是否有调用来确定正在运行的线程的堆栈大小?我一直在查看 MSDN 线程函数文档,但似乎找不到. 解决方案 虽然没有 API 可以直接找出堆栈大小,但必须保留连续的虚拟地址空间直到最大堆栈大小 - 就这么多那个空间还没有提交.您可以利用这一点并两次调用 VirtualQuery. 对于第一次调用,将堆栈上任何值的地址传递给它,以获取已提交堆栈空间的基地址和大小(以字节为单位).在堆栈向 ..
发布时间:2021-08-28 18:35:41 其他开发

在 Maven 构建期间增加 Scala 堆栈大小

在使用 maven (mvn compile) 编译 scala 项目时,出现错误:java.lang.StackOverflowError.我也从 eclipse 中得到了相同的结果,但可以通过提供附加命令行参数来解决它: -J-Xss256m for scala compiler ,如下所示 如何增加 scala 堆栈大小 但是我在执行“mvn compile"时遇到了同样的错误.我该如 ..
发布时间:2021-06-02 18:55:22 其他开发

为什么C#中的堆栈大小恰好是1 MB?

当今的PC拥有大量物理RAM,但对于32位进程,C#的堆栈大小仅为1 MB,对于64位进程,C#的堆栈大小仅为4 MB( C#中的堆栈容量)。 为什么CLR中的堆栈大小仍然如此 为什么它恰好是1 MB(4 MB)(而不是2 MB或512 KB)?为什么要决定使用这些金额? 我对考虑和做出该决定的原因感兴趣。 解决方案 您正在寻找做出这一选择的人。 David Cutl ..
发布时间:2020-09-25 18:49:30 C#/.NET

CMake更改堆栈大小

是否可以通过 Cmake 更改堆栈大小? 我只找到了一个论坛主题提到CMAKE_CXX_STACK_SIZE,但是我找不到此命令的文档.理想情况下,该命令应同时适用于 Visual Studio C ++ 和 gcc . 解决方案 目前我没有VS,但是以下三个CMake命令在MinGW/GCC上都对我有用(用输入的内容替换)进入add_executable()): ..
发布时间:2020-07-27 01:25:42 其他开发

Android Runtime(ART)中用于本机和Java的统一堆栈

https://developer.android.com/guide/实践/verifying-apps-art.html#Stack_Size 该文档说ART具有针对本机和Java的统一堆栈。 你能告诉我这是什么意思吗? 我知道线程的堆栈大小只能在创建时定义,例如在Java代码中使用Thread类的构造函数或在本机代码中使用pthread API。 所以我不明白统一堆栈如何影响应用 ..
发布时间:2020-06-05 19:08:50 移动开发

增加主程序的堆栈大小还是为递归代码块创建具有更大堆栈大小的新线程?

我对 我应该使用以下后期构建事件来增加主程序的堆栈大小: “ $(DevEnvDir).. \..\VC\bin\editbin.exe” / STACK:8388608“ $(TargetPath)” 还是应该将递归代码块封装在具有更大堆栈大小的新线程中? 线程线程= new Thread(delegate() { //可以使用较大的堆栈 },8192 ..
发布时间:2020-05-31 19:03:58 C#/.NET

Python线程stack_size和segfaults

一个Web爬虫脚本,最多产生500个线程,每个线程基本上都请求从远程服务器提供某些数据,每个服务器的答复在内容和大小上都与其他服务器不同. 我将线程的stack_size设置为756K threading.stack_size(756*1024) 这使我能够拥有所需的足够数量的线程,并可以完成大多数作业和请求.但是,由于某些服务器的响应大于其他服务器,并且当线程获得这种响应时,脚本 ..
发布时间:2020-05-14 00:02:44 Python

使用大型预编译头文件时cc1plus.exe崩溃

我在将预编译的头文件与MinGW一起使用时遇到问题.编译器似乎找到了预编译的头文件,但cc1plus.exe在(cc1plus.exe停止工作)后立即崩溃. 我已经了解到,这可能与cc1plus.exe的堆栈小有关,因此我做了以下操作来增加它: editbin cc1plus.exe /STACK 33554432 而且我也无济于事: editbin cc1plus.exe ..
发布时间:2020-05-09 22:18:35 其他开发

MATLAB的堆栈大小是多少?

MATLAB R2018a(64位)的默认堆栈大小是多少? 似乎堆栈大小大于64位C#程序. 我为什么要问 我问这个问题是因为我称英特尔MKL为我在.NET应用程序中使用该函数,并且从C#调用该函数时出现堆栈溢出错误,请参见另一方面,如果我从MATLAB调用.NET应用程序,则不会收到堆栈溢出错误.这就是我想知道MATLAB的堆栈大小的原因. 解决方案 使用dumpbin ..
发布时间:2020-05-06 14:01:29 其他开发

Linux中堆栈内存在物理上是连续的吗?

据我所知,堆栈内存在虚拟内存地址中是连续的,但是堆栈内存在物理上也是连续的?这与堆栈大小限制有关吗? 编辑: 我曾经认为堆栈内存不必在物理上是连续的,但是为什么我们认为堆栈内存总是比堆内存快?如果它在物理上不是连续的,那么堆栈如何利用缓存的更多优势呢?还有另一件事总是让我感到困惑,cpu在数据段中执行指令,该指令不在虚拟内存中的堆栈段附近,我认为操作系统不会使堆栈段和数据段在物理上彼此 ..

如何确定Linux中程序的堆栈大小?

如何确定linux中程序的当前堆栈大小? 据说在Linux中每个程序的堆栈大小为8 MB,但是当您使用 cat/proc//mmap会显示不同的大小. 此外,如何确定相关线程的堆栈大小?既然有人说线程有自己的私有堆栈? 解决方案 如果只需要当前的堆栈大小,则可以在main()的顶部声明一个变量,获取其地址,然后将其与以下地址进行比较:在定义“当前"的位置处声明的变量.差异应该是 ..
发布时间:2020-05-01 09:11:07 服务器开发