【问题标题】:C#: keeping variables in Visual Studio's memory between program compilesC#:在程序编译之间将变量保存在 Visual Studio 的内存中
【发布时间】:2017-10-31 05:12:13
【问题描述】:

我有一个计算密集型程序,它首先使用二进制文件中的数据填充一个非常大的数组。然后程序继续处理这些数据等。从 bin 文件加载我的变量是最耗时的步骤。

有没有办法将变量保存在 Visual Studio 的内存中,这样我就可以编辑/重新编译程序的内容,而无需每次都重复这个加载过程?

我来自 Matlab,我可以将变量加载到工作区中,然后从任何脚本中尽可能多地使用它,直到我关闭 Matlab 环境。

【问题讨论】:

  • 不,变量不能像在 Matlab 中那样存储在 Visual Studio 中。 VS是写程序的IDE,Matlab是计算包。
  • 您可以查看有关将 C# 脚本添加到游戏编辑器的文章。通常他们支持热脚本重新加载正是出于这个原因。
  • 这个问题需要更多细节才能得到有用的答案。根据您想要做什么,您的问题可能有不同的解决方案,例如通过 REST 或命名管道、内存映射文件或使用代码的计算部分动态加载和卸载应用程序域从服务中提供数据。我看不到在 VS 中执行此操作的方法,即使使用扩展也是如此。您将如何将数据从 VS 传递到您的应用程序?

标签: c# matlab visual-studio visual-studio-debugging


【解决方案1】:

我认为这是不可能的。每次编译时都必须将其加载到内存中。 Matlab 与 C# 非常不同。正如您所说,它在封闭环境下运行脚本。 C# 编译一个独立程序,与 Visual Studio(调试版)通信,但不属于 VS。

【讨论】:

    【解决方案2】:

    我认为您不能使用 Visual Studio 来做到这一点,但您可以考虑使用像 redis 这样的内存缓存来存储您的数据。在 Windows 上设置有点痛苦,所以我建议通过Chocolatey 获取它。一旦它运行StackExchange.Redis 就是转到提供者。

    【讨论】:

      【解决方案3】:

      将大量数据加载到内存中并不耗时,处理它很耗时。

      加载大文件主要取决于磁盘驱动器的读取速度。如果你有 SSD,那应该不会超过几秒钟。

      无论如何,您始终可以将数据以 json 的形式存储或有些人为的方式,将数据的二进制形式(反序列化)存储到磁盘中。

      您将从磁盘加载烘焙数据,而不是获取原始数据并再次对其进行处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-11
        • 2021-12-21
        • 1970-01-01
        • 2018-04-14
        • 1970-01-01
        • 2011-10-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多