Powershell创建数组正确、更快的方法

通常当新的对象添加到一个数组中,根据经验你最担心其性能问题。下面第一个例子将告诉你一个错误的操作方法:

代码如下:

Measure-Command {
  $ar = @()
 
  for ($x=0; $x -lt 10000; $x++)
  {
    $ar += $x
  }
}

在这个循环中,这个数组通过符号“+=”增加了许多新的对象。这样做会需要很长时间,因为在你改变其大小时Powershell每次需要去创造一个新的数组。

下面将有一个非常快的办法—ArrayList,它能够更好的处理可变数组:

代码如下:

Measure-Command {
  $ar = New-Object -TypeName System.Collections.ArrayList
 
  for ($x=0; $x -lt 10000; $x++)
  {
    $ar.Add($x)
  }
}

同一个事物两段代码,第二方法将更效率。

心得:

原来用了这么久PS发现自己一直使用的方法居然不是最好的,看样子要把PS玩精,归根还得看你对.NET掌握。

(0)

相关推荐

  • PowerShell中的强类型数组介绍

    在PowerShell中,当我们将一串强类型的值赋给一个变量时,这个变量就成了强类型数组.如果在一个强类型的数组中增加一个非强类型的数组元素(使用"+="操作符),这时该数组将又变回普通数组. 看看这个例子: 复制代码 代码如下: PS> $array = [Int[]](1,2,3,4,5) PS> $array.GetType().FullName System.Int32[] PS> $array += "foo" PS> $array

  • Windows Powershell 命令返回数组

    当我们把一个命令的执行结果保存到一个变量中,可能会认为变量存放的是纯文本. 但是,事实上Powershell会把文本按每一行作为元素存为数组.如果一个命令的返回值不止一个结果时,Powershell也会自动把结果存储为数组. PS C:Powershell> $IPcfg=ipconfig PS C:Powershell> $IPcfg Windows IP Configuration Ethernet adapter Local Area Connection: Connection-spe

  • 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)

    我们经常在程序设计中用到的数组,同样在脚本中很常用.本节就详细介绍一下数组,以及哈希表在PowerShell中的使用. 数组 在PowerShell中,声明一个变量为数组时,需要使用符号"@",例如: $strUsers=@(""user1","user2","user3) <enter> 这样,我们就声明了一个具有3个成员的数组.查看它的值,使用: $strUsers <enter> 还有一些其他的操

  • PowerShell数组操作简明教程

    对于编写程序来讲,离不开数组,PowerShell也不例外.在PowerShell中创建和使用数组是一件前所未有的愉悦的事情,实在是简单.易用得太过分了!呵呵! 1.定义数组 在PowerShell中,所有的变量都无须定义,数组亦如此,所以此步省略. 2.初始化数组 复制代码 代码如下: $arr=1,2,3,'a','b','xx'; 在上面的例子中,洪哥对变量名为$arr的数组进行了初始化.在PowerShell中初始化一个数组就是把所有的数组元素--不管什么类型的,通通赋给它.每个数组元素

  • PowerShell数组结合switch语句产生的奇特效果介绍

    PowerShell数组与switch语句,PowerShell中数组可以与switch语句结合,产生意想不到的效果. PowerShell中数组可以与switch语句结合,产生意想不到的效果. 先看看例子: 复制代码 代码如下: $myArray = 1,5,4,2,3,5,2,5 Switch ( $myArray ) {  1 { 'one' }  2 { 'two' }  3 { 'three' }  4 { 'four' }  5 { 'five' } } 数组中的所有元素都是在1,2

  • PowerShell查找数组内容、搜索数组、查询数组的方法

    PowerShell中有-contain.-like.-in等操作符,使用这些操作符,可以很方便的在数组中查找元素内容.其中in操作符貌似要在PowerShell 3.0中才有. 先看一个例子,将Windows目录的所有文件的文件名放入到数组$name中,然后在数组$name中查找exploer.exe元素.且看-contains的魅力! 复制代码 代码如下: PS> $names = Get-ChildItem -Path $env:windir | Select-Object -Expand

  • Windows Powershell 创建数组

    在Powershell中创建数组可以使用逗号. PS C:Powershell> $nums=2,0,1,2 PS C:Powershell> $nums 2 0 1 2 对于连续的数字数组可以使用一个更快捷的方法 PS C:Powershell> $nums=1..5 PS C:Powershell> $nums 1 2 3 4 5 数组的多态 象变量一样如果数组中元素的类型为弱类型,默认可以存储不同类型的值. PS C:Powershell> $array=1,"

  • PowerShell数组的一些操作技巧

    PowerShell数组的使用例子,PowerShell中使用逗号给数组赋值,数组中可以存放各种不同类型的数据值. PowerShell中使用逗号给数组赋值,数组中可以存放各种不同类型的数据值. 数组的赋值 先看下面一个简单的例子: 复制代码 代码如下: $myArray = 'Hello', 12, (Get-Date), $null, $true $myArray.Count 这个数组中有五个元素,有字符串.数字.日期.空值.布尔值等不同的数据类型. 索引数组的数据(正序与逆序) 使用中括号

  • Powershell创建数组正确、更快的方法

    通常当新的对象添加到一个数组中,根据经验你最担心其性能问题.下面第一个例子将告诉你一个错误的操作方法: 复制代码 代码如下: Measure-Command {   $ar = @()     for ($x=0; $x -lt 10000; $x++)   {     $ar += $x   } } 在这个循环中,这个数组通过符号"+="增加了许多新的对象.这样做会需要很长时间,因为在你改变其大小时Powershell每次需要去创造一个新的数组. 下面将有一个非常快的办法-Array

  • 比Jquery的document.ready更快的方法

    这个是上次在博客园看到的一篇文章,经测试,确实比jquery的$(document).ready(function(){....})更快,并且在ie和火狐等主流浏览器上都没问题, 忘了原创是谁了,如果主人看到可以联系我, 我会立刻加上原文出处的,敬请见谅. 复制代码 代码如下: var jb51 =new function() { dom = []; dom.isReady = false; dom.isFunction = function(obj) { return Object.proto

  • Numpy中创建数组的9种方式小结

    目录 1.使用empty方法创建数组 2.使用array创建数组 3.使用zeros/ones创建数组 4.使用arange创建数组 5.使用linspace创建数组 6.使用numpy.random.rand创建数组 7.使用numpy.random.randn创建数组 8.使用numpy.random.randint创建数组 9.使用fromfunction创建数组 1.使用empty方法创建数组 该方式可以创建一个空数组,dtype可以指定随机数的类型,否则随机采用一种类型生成随机数. i

  • PHP数组去重的更快实现方式分析

    本文实例讲述了PHP数组去重的更快实现方式.分享给大家供大家参考,具体如下: 概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_unique()函数,它会运行地慢一些. 有一个比较好而且更快的函数array_flip()来替代使用array_unique()函数来创建唯一的数组.这个魔法般的函数会交换数组里面每一个元素的键和值,因为键值必须唯一,因此

  • 让Python代码更快运行的5种方法

    不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一

  • JavaScript 批量创建数组的方法

    JavaScript有许多批量创建数组的方法,为了衡量它们的性能,我分别使用不同的方法创建一个长度为100000的数组,且键和值相等.同时,我定义了下面这个函数用来测量创建数组所耗费的时间: function t(fn) { var start = Date.now(); fn.call(this); var end = Date.now(); return (end - start) + 'ms'; } 以下为常用的几个创建数组的方法以及它们所耗费的时间: 使用join和split 该方法把大

  • ES6 新增的创建数组的方法(小结)

    在ES6之前,创建数组的方式有2种: 一: 通过数组字面量 let array = [1,2,3]; console.log(array);//[1,2,3] 二: 通过new Array()创建数组 let array = new Array(1, 2, 3); console.log(array); //[1,2,3] 在大多数情况下new Array()运行良好: let array = new Array(1, 2); console.log(array.length); //2 con

  • Ruby创建数组方法总结

    程序经常需要管理变量集合.例如,管理日历的程序必须有一周的天数列表.每天必须存储在一个变量中,它们的列表可以存储在一个数组变量中.通过这个数组变量,您可以访问每一天. 创建空数组 您可以通过创建一个新的数组对象并将其存储在一个变量中来创建一个空数组.这个数组将为空;您必须用其他变量填充它才能使用它.如果要从键盘或文件中读取内容列表,这是创建变量的一种常见方法. 在下面的示例程序中,使用array命令和赋值运算符创建一个空数组.从键盘上读取三个字符串(字符的有序序列)并"pushed"或

  • Python 更快进行探索性数据分析的四个方法

    大家好,常用探索性数据分析方法很多,比如常用的 Pandas DataFrame 方法有 .head()..tail()..info()..describe()..plot() 和 .value_counts(). import pandas as pd import numpy as np df = pd.DataFrame( { "Student" : ["Mike", "Jack", "Diana", "Cha

随机推荐