忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 387 | 回复: 0

[学习共享] ps第三课:面向对象语言有啥优缺点? [复制链接]

论坛徽章:
0
发表于 2017-07-10 14:43 |显示全部楼层
面向对象的优点是什么?


1 有了属性。 属性就是参数,比字符串粒度更小。在没有属性之前,我们就要用【烧脑正则】过滤,筛选字符串,简称【扣字符串】。有了属性就不用了。


2 有了方法。 方法就是程序,就是代码。无需自己重复编写。bat肯定是不行,没有方法,有也是个人写的,不可靠,不敢用。
方法可以是自己编写的ps函数,自己编写的ps类中的方法。
自己编写的方法,可以临时【并入】到第三方类中。
自己编写的方法,可以临时【并入】到.net类中。


问:面向对象的缺点是什么?
答:
1我在向用winxp的人传授powershell时。那人说,powershell不好,对象太占内存,他说的是对的。
cmd中我用dir返回100个文件名(字符串)。powershell中我用dir返回100个文件对象,powershell占用的内存多。
但今时不同往日:


1.1不必要的内容不要存在变量中。或者用完立马销毁,减少内存占用。
例如:
$a = dir 存放100个文件的目录  #返回100个文件对象,太占内存。
$a = (dir 存放100个文件的目录).name  #返回100个字符串,虽然省内存,但文件的属性方法也没了。

1.2内存大大滴够用了。因为cpu性能已经上不去了,我们正在疯狂加大内存,企图以空间换时间。


1.3我们更想要强大的功能,这年头面向对象是最基本的。py,php,java,.net,c++哪个不是面向对象的?

2.net虚拟机,运行慢的情况。
2.1 第一次运行慢。
2.2 刚开机运行慢。
这个问题在win7中存在,在win10中基本不存在了。
有计划任务,在计算机空闲时,定时循环优化虚拟机。
就好像大热天,你去饭店吃饭,叫瓶凉啤酒。python说我现给你冰镇。.net说我把一小时前冰镇的拿给你。
.net预先建立了线程池,用于加速代码。提前整理好了堆、栈、内存,用于加速数据。
这种优化是系统级别的,这种优化导致python永远达不到的性能。除非py也搞这么一个服务。

总结:
1对象比字符串粒度更大,更占内存。
2面向对象多了方法,功能更强。
3属性比字符串粒度更小,用起来极其方便。避免了【狂用烧脑正则去过滤】字符串!

===狂用烧脑正则去过滤例子,bat版的ping默认网关===

  1. <p>@echo off&setlocal enabledelayedexpansion
  2. echo 正在查找默认网关...</p><p>for /f "usebackq delims=" %%i in (`ipconfig /all`) do (
  3. echo %%i|find /i "gateway">nul||echo %%i|find "默认网关">nul
  4. if "!errorlevel!"=="0" (
  5. for /f "tokens=2 delims=:" %%a in ("%%i") do for /f "delims= " %%m in ("%%a") do set ipgate=%%m
  6. )
  7. )</p><p>echo 默认网关是:!ipgate!</p>
复制代码




===========ping默认网关.ps1============

  1. <p>$默认网关 = (get-netroute -DestinationPrefix 0.0.0.0/0).NextHop
  2. & ping.exe $默认网关 </p><p># Test-Connection $默认网关</p>
复制代码


=======================

问:即然面向对象这么好,那么这些对象都是从哪里来的?
答:从.net库中来。



问:.net兼容库都在哪里??
答:
http://www.nuget.org/




打赏鼓励一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP