C# 巨大的 2 维数组

2024-02-10

我需要在 C# WinForms 中声明连续超过 20000 个项目的方阵。 我读到 32 位中 2GB .Net 对象大小限制,以及 64 位操作系统中的相同情况。 据我了解,唯一的答案是使用不安全的代码或使用 C++ 编译器构建的单独的库。

这个问题对我来说是值得的,因为 ushort[20000,20000] 比 2GB 小,但实际上我什至无法分配 700MB 的内存。我的限制是 650MB,我不明白为什么 - 我有 32 位 WinXP,内存为 3GB。 我尝试使用 Marshal.AllocHGlobal(700

我只发现很多人说使用不安全的代码,但我找不到如何在堆中声明 2-dim 数组的示例(任何堆栈都无法保存如此大量的数据)以及如何使用指针来使用它。 unsafe{} 括号内是纯 C++ 代码吗?

附言。请不要问为什么我需要这么大的数组......但如果你愿意 - 我需要分析文本(例如书籍)并找到很多索引。所以答案是 - 单词之间关系的矩阵

编辑:有人可以提供一个小在不安全代码中使用指针处理矩阵的示例。我知道在 32 位下不可能分配更多空间,但我花了很多时间在谷歌上搜索这样的例子,但什么也没找到


为什么需要巨大的二维阵列?例如,您可以使用锯齿状数组来模拟 -ushort[][] - almost一样快,并且您不会达到相同的单个对象限制。当然,您仍然需要bucket-o-RAM,因此隐含x64...

        ushort[][] arr = new ushort[size][];
        for(int i = 0 ; i < size ; i++) {
            arr[i] = new ushort[size];
        }

除此之外,您可能还想看看稀疏数组、eta 向量以及所有这些爵士乐。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 巨大的 2 维数组 的相关文章

  • 如何在 C# 中知道 PID 和 VID 来发现虚拟 COM 端口名称

    如果我知道 PID 和 VID 我会尝试找到查找 COM 端口名称的正确方法 到目前为止 我写了解决方法 但我不相信没有更优雅和正确的方法 顺便说一句 我知道我可以使用 REGEX 编写此代码只是为了测试解决方法 我知道还有很大的改进空间
  • binary_log_types.h:没有这样的文件或目录

    我正在编译一个小型 mysql C 项目并且 遇到以下错误 C Program Files x86 MySQL MySQL Server 5 7 include mysql com h 22 30 fatal error binary lo
  • 如何通知父线程所有子线程都已终止?

    我有一个控制台应用程序正在移植到 WPF 该应用程序有 3 个工作线程 在将一些输出结果打印到屏幕上之前 这些线程都连接到主线程 我的理解是 如果我尝试在 WPF 应用程序中执行相同的操作 GUI 将被阻止并且不会响应用户 那么如何通知父线
  • 计算复杂数组的abs()值的最快方法

    我想计算 C 或 C 中复杂数组元素的绝对值 最简单的方法是 for int i 0 i lt N i b i cabs a i 但对于大向量来说 速度会很慢 有没有办法加快速度 例如使用并行化 语言可以是 C 或 C 鉴于所有循环迭代都是
  • 在目标 VS 安装时,VSIX 扩展内部使用的 WPF-Log4Net 未输出日志

    当 Log4net 在 VSIX 扩展中使用并安装在另一个目标 VS 上时 它不会记录日志 我有一个 WPF 解决方案 我下载了 log4net dll 添加了 log4net config 并将 复制到输出目录 值设置为 始终复制 log
  • 我的 WPF 应用程序未触发 MainWindow_Loaded

    我目前正在关注Pluralsight C Fundamentals Part 1并在Classes and Objects视频部分指导我在 Visual Studio 中创建一个新的 WPF 应用程序并填写代码 这导致以下结果 namesp
  • 从套接字读取 C HTTP

    我想知道如何判断是否已从套接字接收到所有数据 这是一个简单的网络代理 现在我正在处理请求部分 所以发送的内容应该以 r n r n 结尾 我不知道请求会持续多久 我在这里读过一些帖子 说我应该检查读取函数是否返回 0 但其他人说0只在客户端
  • EF Core 一对多关系列表返回 null

    我正在尝试学习如何在 EF Core 中正确利用 DbContext 我有一个团队课程 public class Team public int ID get set public string Name get set public bo
  • 修改正在运行的可执行文件的资源内容

    All 我将应用程序设置存储在资源中 当我的程序首次加载时 我使用 WinAPI 读取指定的资源 然后我解析检索到的字节数据 这对我来说完美无缺 现在假设用户更改了我的应用程序中的设置 他 她检查复选框控件 我想将更新的设置保存到我的资源中
  • 为什么 httpRuntime targetFramework="4.5" 禁止抓取 .ASPXAUTH cookie?

    当我的 web config 具有以下 httpRuntime 时 我的控制器无法获取 cookie ASPXAUTH 它似乎能够获取任何其他 cookie 无论带或不带句点前缀 如果我删除下面的行 它就可以正常工作
  • 类型别名和不完整类型

    我可能已经超出了解决这个本应简单的问题的范围 我在这里开始这个问题 在编译时获取基类的类型 https stackoverflow com questions 17735852 getting type of a base class at
  • 为什么未到达的 try-catch 块会增加运行时间?

    我目前正在创建自己的容器库 但我已经看到无法访问 if 语句无效 try catch阻止增加运行时间 这是我的测试 Vector cpp template
  • 生成范围 [min,max] 内的随机数 [重复]

    这个问题在这里已经有答案了 我正在使用 C 生成范围 min max 内的整数随机数 我在用 int random int int min int max return min rand max min 但我认为上面的代码适用于范围 min
  • 如何在asp.net core 6中注入IConfiguration

    web api 应用程序中不再有 Startup cs 我们以前可以注入IConfiguration进入那个Startup class public class Startup public Startup IConfiguration c
  • #define 内存地址声明

    这个 define 语句有什么作用 它用于定义内存地址 但我不明白 uint32 t 部分 define GPxDAT uint32 t 0x6FC0 通常用于访问映射到地址空间的硬件寄存器 或者一些特定的内存地址 硬件寄存器应定义为vol
  • 如何创建和使用类箭头运算符? [复制]

    这个问题在这里已经有答案了 因此 在到处研究之后 我似乎找不到如何创建类箭头运算符 即 class Someclass operator gt 我只需要知道如何使用它并正确使用它 它的输入是什么 它返回什么 我如何正确地声明 原型化它 运算
  • 用于 nmap 输出的 C++ xml 解析器

    我是 nmap 的新手 我在 nmap 教程中看到 https nmap org book man output html https nmap org book man output html oX 选项可用于获取 xml 格式的 nma
  • 在Framework 4.6项目中使用.net core DLL

    我已经在 net core 2 0 中构建了一个 DLL 现在我想在使用 net 4 6 1 框架的 WinForms 项目中使用它 我可以引用该 dll 但收到 System IO FileLoadException 表示找不到 Syst
  • 使用 MVC5、Ajax、C# 和 MSSQL Server 级联 DropdownList

    我对来自 Windows 窗体和三层架构的 MVC 非常陌生 我试图找出使用从数据库填充的级联下拉列表 DDL 我使用 MS SQL Server 2012 VS 2013 目前我正在研究用户调查问卷 用户可以从 DDL 的多个答案中进行选
  • C#:如何处理乱序 TCP 数据包?

    请有人解释一下如何处理乱序数据包 我使用原始套接字来捕获数据包 并在数据包到来时解析它们 但其中一些数据包的顺序错误 例如 ID 标志 16390 PSH ACK 16535 PSH ACK 16638 确认 16640 PSH ACK 1

随机推荐

  • 旋转的 3d 导航栏

    我正在尝试使用纯 CSS 以及变换 过渡和透视来创建 3d 导航栏 这是我的代码 navbar fixed bottom background transparent navbar perspective width 100 height
  • 最令人烦恼的解析是否带有限定 ID?

    考虑 struct Foo enum bar explicit Foo int struct Baz explicit Baz Foo Baz b Foo Foo bar 1 第 1 行是最令人烦恼的解析吗 Foo bar is a 合格的
  • 检查继承函数的函数签名

    我需要检查容器擦除函数是否返回迭代器 我通常会通过例如检查函数签名促进 但在 boost 类 例如 flat set 的情况下 擦除是继承的 因此检查找不到 但我确实需要它 SFINAE 检查继承的成员函数 https stackoverf
  • Emoji 转 JSON 编码,发布到 Web 服务器

    请帮助我解决发布 JSON 解码表情符号字符时遇到的问题 我有一个 UITextView 这个文本视图可能有表情符号字符 我将数据发布到 Web 服务器 其中 UITextView text 以 JSON 形式呈现 问题是当文本具有表情符号
  • SWIG 从不同模块导入生成的类并打包到当前类中

    我在获取 SWIG 时遇到困难类型映射 java包 http www swig org Doc1 3 Java html java directors typemaps才能正常工作 我尝试制作一个简单版本的问题 但即使这样似乎也失败了 fo
  • python 3 中的 types.ClassType 发生了什么?

    我有一个脚本 我在其中做了一些神奇的事情来动态加载模块 并实例化模块中找到的第一个类 但我不能使用types ClassTypePython 3 中不再这样了 现在执行此操作的正确方法是什么 我想到了 看起来类的类型是 type 下面是如何
  • 如何针对堆栈测试新的 ghc 构建

    我已经构建了 ghc HEAD 我想尝试构建所有 stackage lts 或 nightly 看看它能做多少事情 我所说的任何内容都无法说服 stack 使用我的新 ghc 构建任何东西 我尝试设置如下 stack setup 8 1 2
  • Xamarin 表单,拉动刷新 UWP 中的 listView

    在 Windows 桌面上运行时如何刷新 Xamarin 表单列表 看来我们无法拉动刷新 谢了 Fran ois 在 Xamarin Forms 上的 ListView 中拉动刷新需要您实现这 3 件事 IsPullToRefreshEna
  • 如何从 PowerShell 激活 Conda 环境?

    Version Anaconda https en wikipedia org wiki Anaconda Python distribution 4 8 3 我不能做什么 我不能activate来自 PowerShell 的任何环境 co
  • zlib 库的 pip 安装失败

    当我尝试通过以下命令安装 zlib 时 sudo pip install zlib 我遇到以下错误 Could not find any downloads that satisfy the requirement zlib Cleanin
  • Firebase Cloud Messaging 不同的键

    当前生成的密钥是什么google services json制作项目时的文件 当前密钥 Web API 密钥和服务器密钥之间有什么区别 在哪里可以找到当前密钥 FCM 控制台 我找不到它 目前还没有文档清楚地讨论了在google servi
  • 为什么 core.async go 块返回一个通道?

    我理解 去块 无论是go or go loop或可能的其他构造 返回一个通道 但我一直不明白这个频道的目的 我想知道如何使用它 也许我在不需要的时候创建了额外的频道 我使用的返回通道go block 作为句柄 我可以将其传递给另一个想要与完
  • [Environment]::SetEnvironmentVariable 未永久设置

    From 设置 Windows PowerShell 环境变量 https stackoverflow com a 2571200 3416774 我用它作为管理员 PS D gt Environment SetEnvironmentVar
  • 使用 javascript 获取已安装扩展的列表

    我想弄清楚是否可以使用 javascript 获取所有已安装的浏览器扩展的列表 我明白这是可能的 chrome 使用 chrome extension 参考 火狐 使用 Application extensions all 但在 IE 和
  • F# 活动模式作为非静态成员

    我不确定是否允许非静态公共成员活动模式 但您可以定义它们而不会引起编译器的抱怨 如果允许的话 匹配的语法是什么 编译器给我 FooBar2 doSomething 中的 Foo 类型不匹配 期待一个 a gt Choice lt b c g
  • 在 onHandleIntent 之前捕获 IntentService Intent

    我有一个 IntentService 它将要进行的 Web 服务调用排队 我将一个整数作为 Extra 传递给每个 Intent 它定义了要进行的 Web 服务调用的类型 我想创建一种情况 如果执行特定 Web 服务的 Intent 被传递
  • javascript有API这样的概念吗

    我主要用java编程 几乎没有javascript知识 我的问题是 javascript 是否允许使用 API 例如 我有一个 javascript 应用程序 我希望向其中公开一些函数 例如中间件 API 集 这个中间件也可以用 javas
  • 修改 tableView 中的 UITableViewCellaccessoryType 时出现问题:didSelectRowAtIndexPath:

    我有一个透明的表格视图 带有子视图 UIImageView 的 UIViewController 和位于 UIImageView 同级顶部的另一个子视图 UITableView 其背景 clearColor UITableViewCells
  • 将 Spark 数据帧插入 hbase

    我有一个数据框 我想将其插入到 hbase 中 我遵循这个文档 https hbase apache org book html sparksql dataframes 这就是我的数据框的样子 id name address 23 marr
  • C# 巨大的 2 维数组

    我需要在 C WinForms 中声明连续超过 20000 个项目的方阵 我读到 32 位中 2GB Net 对象大小限制 以及 64 位操作系统中的相同情况 据我了解 唯一的答案是使用不安全的代码或使用 C 编译器构建的单独的库 这个问题