powershell中使用超大内存对象
powershell中使用超大内存对象
简单介绍了powershell中超大内存对象的用途,开启powershell超大内存对象的办法。
powershell 传教士 原创文章 2016-12-31 允许转载,但必须保留名字和出处,否则追究法律责任
powershell 2GB large object .net 大对象
前 言
问:powershell中,哪些对象有可能会占用大内存?
答: stringbuilder对象,大数组arraylist,hashset等。
问:powershell中,stringbuildr对象有什么用?
答: 还是比较常用的,让大文件在内存中查找替换,这样比string快不少。
问:1GB的stringbuilder对象,能存多少文本?
答: .net 采用utf16,即不论一个英文字母还是一个汉字,都占用2个字节。 所以说1GB的文本文件,读取入内存后,大概要占用2.1GB左右的内存。
正 文
问题的提出: 一个变量占用1GB内存,算是大么?
我有台测试机子,用的是win10 ltsb 2016的系统,物理内存还剩30G,虚拟内存20G。 但是建立个1GB的对象都报错。而建立900MB的就不报错了,代码如下:
[System.Reflection.Assembly]::loadwithpartialname("System.Text") | Out-Null
[int32]$long = 1gb
$内存字符串对象 = New-Object System.Text.StringBuilder($long)
本来手册中说,默认能使用2GB内存的。唉,这年头啥都缩水呀,看来我只能启用.net的超大对象了。
前提:
1 用64位系统,物理内存足够,虚拟内存足够。
2 .net版本至少是4.51,当然最好是最新版4.62。
3具体解决办法:
用记事本,新建一个文本文件,
文件名为:【powershell.exe.config】
文件编码为:【utf8+bom头】,即用记事本保存成utf8编码。
文件内容为:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
</configuration>
保存后,粘贴此文件到【c:\Windows\System32\WindowsPowerShell\v1.0】
再重新运行powershell.exe,重新运行上述脚本代码,就不报错了。
powershell中使用超大内存对象的更多相关文章
- powershell中的cmdlet命令
Add-Computer 向域或工作组中添加计算机. Add-Content 向指定的项中添加内容,如向文件中添加字词. Add-History 向会话历史记录追加条目. Add-Member 向 W ...
- java中基本类型封装对象所占内存的大小(转)
这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runt ...
- 在PowerShell中操作SharePoint对象
1. 用PowerShell创建一个SharePoint内容对象创建一个自定义列表:$SPSite = New-Object Microsoft.SharePoint.SPSite("htt ...
- 使用管道符在PowerShell中进行各种数据操作
最近在培训PowerShell,在讲到Pipeline的时候,对于我这种长期和数据(数据库)打交道的人来说,觉得很实用,所以写此博文,记录一下. 无论是在Linux中写Bash脚本还是在Window上 ...
- powershell读写磁盘变量(对象序列化)
---[第一章,开篇引子]--- 很久很久以前,我在网上闲逛,看到一头powershell菜鸟,写了一篇感慨道“挖哈哈,我学会powershell啦,我以前很笨,各种不懂,还想把变量保存起来.” 实际 ...
- Json字符串解析原理、超大json对象的解析
概述 附上完整的代码:https://pan.baidu.com/s/1dEDmGz3(入口类是Json)JSON:JavaScript 对象表示法(JavaScript Object Notatio ...
- 探索PowerShell 【十三】WMI对象
原文:探索PowerShell ][十三]WMI对象 我记得在xp时代,经常使用的工具有一个叫做WMI Administrative Tools,是微软官方提供的用来查看.编辑WMI对象的,只是现在好 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (24) ------ 第五章 加载实体和导航属性之查询内存对象
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-4 查询内存对象 问题 你想使用模型中的实体对象,如果他们已经加载到上下文中, ...
- OO中,先有对象还是先有类?
就是问,在面向对象思想里,先有对象还是先有类,乍一看和先有鸡蛋还是先有鸡是一类问题,其实不然!这个问题,在lz考研复试的时候被面试官问过,一模一样,如今又在一个笔试题里看到了类似的题目,眨一下,有人会 ...
随机推荐
- React 高级指南小记
接上篇,还是笔记,还是干货. 深入 JSX 如果使用 JSX 表达式 <Foo />,Foo 必须在范围内,因为这些标签被编译为对指定变量的直接引用. 由于 JSX 编译为对 React. ...
- 解决 java 使用ssl过程中出现"PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
今天,封装HttpClient使用ssl时报一下错误: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorExc ...
- ShaderForge
什么是ShaderForge ShaderForge的目标是推动统一的视觉质量提升到了新的高度, 给你自由的材质创建在一个视觉和直观的方式——不需要代码! ShaderForge的特性 •实时着色器预 ...
- Mac 安装 MySQL
在 Mac 下用 Homebrew 安装 MySQL, 网上的教程倒是很多,不过大多数都很默契地雷同.如果稍有点定制要求,就无从下手了. 我先也不免俗,从基本的开始: 一.首先安装 Homebrew ...
- HTTP协议的报文结构
HTTP 有两类报文: (1) 请求报文----从客户向服务器发送请求报文,见图6-12(a). (2) 响应报文----从服务器到客户的回答,见图6-12(b). 由于 HTTP是面向文本的(tex ...
- 解析json串,利用正则表达式,split
public class SplitJson { public static void main(String[] args) { // TODO Auto-generated meth ...
- vue切换按钮(关闭消失型)
弹窗: <div class="pop" v-show="isShow"> <i class="iconfont icon-icon ...
- windows下安装beautifulsoup4
方法一: pip install beautifulsoup4 方法二: 在官网下载安装包后,放在python目录下--运行cmd--进入bs4安装包路径--输入setup.py install 测试 ...
- js 根据不同情况引入不同操作
1.根据分辨率不同引入不同的JS // 根据不同的分辨率引入不同的JS代码 <script> if (screen.width == 1440 && screen.heig ...
- LCS
/**LCS问题*/ #include <iostream>#include <string>#include <algorithm> using namespac ...