注释
有趣的…. 所以我制作了几个较小的版本,只是想确定它失败的大小。 原始图像的 91.6% 的最大通道从 2292 x 3056(7,004,352 像素)缩小到 2099 x 2799(5,875,101 像素)。
也许软件只调用了 32 位内存分配的限制? 编辑:我尝试再次运行 Pass 并记录 ram 使用情况,计算时它只有 2,545 MB。失败停止在 366 MB。所以有那个理论。 |
即使您的机器具有大量总物理 RAM(通过交换磁盘创建的虚拟内存添加到其中),进程可用的内存量始终只是其中的一小部分。 代码可以创建的单个对象(例如位图)的大小也有限制。即使在 64 位上,CLR 对象的最大大小也是 2gb。 https://stackoverflow.com/questions/6107322/memory-limitations-in-a-64-bit-net-application 我曾经为“AnyCPU”编译 LaserGRBL,它应该生成一个可以在 32/64 位 cpu 上运行的可执行文件,并且操作系统为应用程序选择最佳模式。但是看起来它在 64 位 cpu 上也加载为 32 位 关于您的像素计算,问题要复杂得多。当 LaserGRBL 需要创建最终输出时,它将原始图像缩放到不同的分辨率。该分辨率以复杂的方式计算,只是为了保持可能的最大分辨率,但不超过内存限制(我以实验方式计算),并且不应取决于原始图像分辨率,而应仅取决于最终雕刻的“目标”尺寸。
最后,lasergrbl 在最终矢量化之前在图像副本之间执行多次传递(背景清洁、对比度和亮度的应用等)。也许这是此过程的累积效应。 我怀疑在以前版本的 lasergrbl 中,它是否能够处理更高的输出大小。 |
奇怪的是,降级到 2.8.21 后我重新安装了最新版本,现在它加载为 64 位应用程序。 |
我会试一试,看看我是否可以按照您对降级然后升级所做的操作将其作为 64 位应用程序加载。 感谢您的回复并花时间查看此内容♥♥♥ |
是的,降级到 2.8.21 然后升级到 3.0.24 允许它在 64 位中运行。我保存了 g 代码并准备运行它;p 如果您需要我做更多测试,请告诉我。我在哪里可以给你买杯咖啡? |
这个问题很奇怪,似乎更像是 Windows 问题而不是 LaserGRBL 问题。 LaserGRBL.exe 是使用“ AnyCPU ”标志编译的可执行文件,允许它在 32 位和 64 位机器/操作系统上运行。操作系统选择最佳模式。 由于某些我不知道的原因,Windows 可能会决定将使用标志“AnyCPU”编译的可执行文件作为 32 位可执行文件运行,即使在 64 位机器上也是如此。
只有一个信息:您的 windows 版本是什么?(Win10?Win7?)
如果你喜欢这个软件并且你想贡献你可以通过捐赠给我一杯咖啡:https ://www.paypal.com/pools/c/8cQ1Lo4sRA |
实际安装的 RAM 内存量与程序可以分配的内存量无关。操作系统为程序提供虚拟内存寻址,由于硬盘上的交换文件,使得可用内存量大得多。 根据微软文档,每个 32 位应用程序的地址空间为 2GB,而每个 64 位应用程序的地址空间为 8TB。 这使得 LaserGRBL 在 x86(32 位)系统上受到更多限制。
我读过一些文章,安装文件夹在操作系统加载可执行文件的方式中并不重要。这与我的信念一致。 我在记录器文件(? -> 打开会话日志)中添加了一个诊断程序,显示应用程序运行的是 32 位还是 64 位。 您现在可以阅读:
在方括号之间,您可以阅读:
@StuartB4您可以在会话日志中看到什么? |
嗨 Arkypita。
我在 Windows 7 的任务管理器中似乎没有该选项。 但它似乎在 64 位模式下运行,所以没关系。
非常感谢。 |
问候 我一直在度假。 这是我用于制作 g 代码 |
一块很棒的硅! 我问是因为我正在寻找操作系统版本与此问题之间是否存在关联,但我认为没有。更有可能它取决于系统决定加载的某些 32 位库,这会强制整个应用程序以 32 位加载 看来问题很有限,也许你是少数遇到过并报告过的人之一。 我会保持监控。 |
所以我试图“矢量化”图像,每次尝试都会抛出这个错误:
这对我的系统来说似乎不太可能。我使用 3900x 运行 64GB 内存;>_>
附件是两个屏幕截图,一个是使用的设置,另一个是错误本身。另一个是我正在使用的图像。
编辑:忘记包括我试图用来创建的设置。