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 维数组 的相关文章

  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new

随机推荐

  • 旋转的 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 编译器构建的单独的库 这个问题