• 关于 窗口搜索可以做什么 的搜索结果

回答

回 楼主(mning) 的帖子 1.是登录后没有多久超时吗?亲的帐号是多少呢,方便的话可以提供一下,我们查一下原因。 2.界面是可以直接拖动调整的,并且写信页也是可以全屏的。 3.是多个窗口登录一个邮箱帐号吗?会有超时还是什么现象呢? 4.查找邮件可以直接做相关邮件的关注,可以看一下新版云邮箱实用贴里面有介绍如何操作。或者直接在首页上方的搜索框里面输入相关信息进行搜索。 ------------------------- 回 2楼(天信) 的帖子 你是公司的帐号是吗?我们这里看一下情况

仙游 2019-12-02 00:52:53 0 浏览量 回答数 0

回答

在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本。我把这个测试场景分拆如下步骤: 1) 启动后浏览器,这里我们用Chrome 2) 打开百度首页,https://www.baidu.com 3) 定位搜索输入框,记录下输入框元素的xpath表达式://*[@id='kw'] 4) 定位搜索提交按钮(百度一下这个按钮),获取xpath表达式://*[@id='su'] 5) 在搜索输入框输入“Selenium”,点击百度一下这个按钮。 6) 在搜索结果列表去判断是否存在Selenium官网这个链接。 7) 退出浏览器,结束测试。 如果,还不会通过火狐浏览器上插件firepath获取元素的表达式,请看上一篇文章。如果你没有安装Chrome,那就用Firefox。 1) 桌面新建一个记事本,命名并保存为FirstScript.py 2) 输入如下代码片段到FirstScript.py,保存 3) 打开cmd窗口,切换到桌面路径下,然后通过python FirstScript.py 来执行脚本。 FirstScript.py脚本如下 [python] view plain copy coding=utf-8 import time from selenium import webdriver driver = webdriver.Chrome() # 打开chrome,如果没有安装chrome,换成webdriver.Firefox() driver.maximize_window() # 最大化浏览器窗口 driver.implicitly_wait(8) # 设置隐式时间等待 driver.get("https://www.baidu.com") # 地址栏输入百度地址 driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium") # 搜索输入框输入Selenium driver.find_element_by_xpath("//*[@id='su']").click() #点击百度一下按钮 导入time模块,等待2秒 time.sleep(2) 这里通过元素XPath表达式来确定该元素显示在结果列表,从而判断Selenium官网这个链接显示在结果列表。 这里采用了相对元素定位方法/../ 通过selenium方法is_displayed() 来判断我们的目标元素是否在页面显示。 driver.find_element_by_xpath("//div/h3/a[text()='官网']/../a/em[text()='Selenium']").is_displayed() driver.quit() 第二种断言写法: [python] view plain copy coding=utf-8 import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(8) driver.get("https://www.baidu.com") driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium") driver.find_element_by_xpath("//*[@id='su']").click() time.sleep(2) 第二个判断方法 ele_string = driver.find_element_by_xpath("//div/h3/a[text()='官网']/../a").text if (ele_string == u"Selenium - Web Browser Automation"): print "测试成功,结果和预期结果匹配!" driver.quit() 这里只利用 两个等号(==)来判断两个字符串是否完全相同,有时候我们还需要对得到的字符串进行切割操作,才能进行去匹配,以后再介绍字符串切割处理在自动化测试结果判断中的使用。 总结:自动化测试最难的在于如何去写断言,如何判断测试结果是否通过。 建议: 以上代码包括以后文章中脚本举例,你还是最好去一行一行抄写,不要直接复制、黏贴到你记事本中。因为,你在书写脚本过程,肯定会犯一些语法和输入错误,在调试脚本过程,通过观察报错信息,直到你解决问题,可以顺利执行脚本,你会得到和收获很多。

xuning715 2019-12-02 01:10:09 0 浏览量 回答数 0

回答

昨天在太平洋电脑网上看到一篇好文章<武汉IDC机房远程电源控制实际案例解析>,是唐华写的,讲的怎么在服务器死机状态下,不通过机房管理员人工重启,而是自己远程硬件唤醒服务器开关机、重启恢复正常,觉得很受启发,从此再也不用麻烦机房管理员帮我重启服务器了,再也不用苦苦等待机房管理员懒洋洋地过去重启了,只要服务器死机了,立即就能自己硬件重启恢复正常,无论服务器处于关机还是死机状态,都有效,真的挺实用的,介绍给大家,希望加精华。原文请看:[url] http://servers.pconline.com.cn/skills/0803/1250244_2.html[/url] 看过的也说说这样做行不行,有没有什么优缺点,我打算这样做了,对外推出“服务器死机零等待重启服务”,请大家给点意见吧,大家觉得可行嘛这么做? " 第一步:当远程桌面服务无法顺利使用后我们首先要确定的是服务器是否真的死机。我们可以通过ping目标服务器IP看是否畅通或者访问该服务器上的相关网络服务看是否还能顺利应用,当然也可以通过UNC地址来判断其网络访问是否顺利。当以上任何一个判断返回成功结果后,我们就可以使用下面的方法来远程重启服务器了。(如图) <img src=""https://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=8ae8084ed2ca7bcb7d2ecf298e39475b/42a98226cffc1e177264bdbc4f90f603728de960.jpg""> 第二步:接下来我们通过shutdown命令,在远程桌面不能顺利连接的情况下通过网络重启服务器。具体操作是在命令提示窗口中执行“shutdown /m \服务器IP地址 /r”,这样服务器将自动重新启动。我们在ping -t命令窗口中也将看到目的网络连接情况从畅通到requeset timed out,这说明目的服务器已经在进行重启操作。(如图) <img src=""https://gss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=b92118280f7b02080c9c37e752e9deeb/0824ab18972bd407e2dde3707e899e510fb30920.jpg""> 如果之前没有连接过目的服务器的话我们在执行shutdown命令前还需要使用“et user \服务器IP地址 “密码” /user:用户名”进行连接,例如“net user\129.168.12.1 123456 /user:administrator”(管理员用户名administrator,密码123456)。只有建立了相应的IPC$连接后shutdown才能够发挥作用,不连接就执行shutdown的话目的服务器并不会乖乖重启" iis7远程控制:   一款电脑远程监控的工具,IIS7远程桌面管理是一款专业的远程桌面连接软件,无需安装。操作简单方便。完美的界面设计、强大的监控功能、稳定的系统平台,满足了用户实现远程桌面连接的需求。   1、分组功能。   2、导入文本格式选择,杜绝编码错误的发生。   3、单个服务器手动添加。   4、支持特征搜索。   5、到期功能提醒。   6、导入服务器信息一键生效。   7、程序自动更新。 当远程桌面服务无法顺利使用后我们首先要确定的是服务器是否真的死机。我们可以通过ping目标服务器IP看是否畅通或者访问该服务器上的相关网络服务看是否还能顺利应用,当然也可以通过UNC地址来判断其网络访问是否顺利。当以上任何一个判断返回成功结果后,我们就可以使用下面的方法来远程重启服务器了。

保持可爱mmm 2019-12-02 02:14:39 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

回答

Re回 4楼ivmmff的帖子 谢谢关注我们的产品,相信我们的产品会越做越好,O(∩_∩)O哈哈~ ------------------------- 回 56楼斯斯的帖子 您好,这个应该是数据采集后解析得有问题导致的。请问您当前系统是什么版本? 能否选取其中的一个进程(例如,那个物理内存占用为4.8Tb的)获取其进程号pid,然后打开命令终端执行命令: cat /proc/<pid>/stat 看下是什么结果,截个图发出来看下可以么。 ------------------------- 回 54楼fightgod的帖子 哈哈,谢谢您对我们的认可,现在我们的多屏终端刚刚上线,对性能优化的方面还有所欠缺,当同时操控10台以上的终端,用户浏览器还是比较卡 的。这一方面我会考虑如何去优化它。 本周我们会上线多屏终端的批量上传的功能,输入rz支持多窗口同时上传,十分方便,敬请期待哦 O(∩_∩)O~ ------------------------- Re数据管理DMS-精华帖 您好,你说的不能同步的机器是指的VPC吧?是这样的,对于vpc机器目前我们还没能做到列表和ecs同步,主要原因是阿里云ecs方面还未能提供相关接口。目前他们正在制定统一的解决方案,方案定下来我们便能够实现支持自动同步。 针对手动添加的vpc不能读取命名的问题,您可以手动在我们dms控制台上对该主机设置备注来管理,通过搜索备注可轻易地定位到该主机。 感谢您对dms的支持 ------------------------- 回 57楼周枫枫的帖子 您好,你说的不能同步的机器是指的VPC吧?是这样的,对于vpc机器目前我们还没能做到列表和ecs同步,主要原因是阿里云ecs方面还未能提供相关接口。目前他们正在制定统一的解决方案,方案定下来我们便能够实现支持自动同步。 针对手动添加的vpc不能读取命名的问题,您可以手动在我们dms控制台上对该主机设置备注来管理,通过搜索备注可轻易地定位到该主机。 感谢您对dms的支持 ------------------------- 回 55楼优尔教育的帖子 您好,我们后台发现是您操作系统中缺少两个文件导致我们数据采集出错的,能否看下您系统里面有没有: /proc/partitions /proc/diskstats 这两个文件?

帅博 2019-12-02 02:01:25 0 浏览量 回答数 0

回答

1、postman背景介绍 postman是接口测试的神器之一,可以发送几乎所有类型的HTTP请求,前身是google-chrome的一个插件,2018年初google停止了对chrome应用程序的支持,postman插件就无法使用了,不过我们可以到postman的官网下载对应的程序。 2、postman优点 支持各种类型的请求:GET、POST、PUT、PATCH、DELETE等(其中最常用的是GET和POST) 支持请求头(Headers)的各种自定义,如:[{"key":"Content-Type","value":"application/x-www-form-urlencoded","description":"POST请求默认方式","enabled":true}] 支持请求自定义参数的设置 支持10种不同的授权认证机制,如:Inherit auth from parent、Bearer Token、Basic Auth、Digest Auth、OAuth 1.0,OAuth 2.0等 支持collection、folder数据在线存储:可根据账号来实现数据的迁移 3、postman下载 官网下载:https://www.getpostman.com/apps 具体的安装下载过程跟一般app下载差不多非常easy,基本不需要配置什么,一路next,在这里就不一一赘述了,另外也可以网上自行搜索第三方的网站下载postman。 4、postman界面熟悉 postman的界面非常的友好,没有过多的累赘功能,呈现出来的都比较好理解 4.1左上角菜单功能 File主要用来操作文件,如新建、导入、设置、关闭窗口、退出等 Edit用来编辑操作,如撤销、重做、剪切、复制、粘贴等 View用来设置postman软件的浏览方式,如全屏、放大、缩小、切换tab请求框等 Collection集合相当于其他软件的一个项目,可以新建集合、导入、集合运行配置 History不言而喻就是运行历史了 Help帮助接口,如升级、文档、支持、GitHub、Twitter等 4.2左侧界面 上面三个都是比较熟悉的功能在菜单界面已经介绍过了,这里就简单的带过 New:新建request请求、collection集合、environment、documentation、mocker server、monitor Import:postman支持json和csv格式的导入 Runner:运行配置,如配置延迟时间、迭代次数等 添加的collection及fodler会显示在左侧白框框中,层级依次是collection-folder-request 4.3右上部分 此部分主要是request请求区,可以设置请求相关的参数,如授权机制、请求头、数据体、请求setup、用例等 4.4右下部分 此部分主要包含response响应数据区,可以通过此区域接受服务器的响应数据并查看。

景凌凯 2020-04-30 18:05:12 0 浏览量 回答数 0

回答

如何查看、关闭和开放WIN 系统端口Windows有很多端口是开放的,在你上网的时候,网络病毒和黑客可以通过这些端口连上你的电脑。为了让你的系统变为铜墙铁壁,应该封闭这些端口,主要有:TCP 135、139、445、593、1025 端口和 UDP 135、137、138、445 端口,一些流行病毒的后门端口(如 TCP 2745、3127、6129 端口),以及远程服务访问端口3389。查看端口在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。小知识:Netstat命令用法命令格式:Netstat -a -e -n -o -s-an-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。-e 表示显示以太网发送和接收的字节数、数据包数等。-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。-s 表示按协议显示各种连接的统计信息,包括端口号。-an 查看所有开放的端口关闭/开启端口先介绍一下在Windows中如何关闭/打开端口的简单方法,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如Telnet服务的23端口、FTP服务的21端口、SMTP服务的25端口、RPC服务的135端口等等。为了保证系统的安全性,我们可以通过下面的方法来关闭/开启端口。关闭端口比如在Windows 2000/XP中关闭SMTP服务的25端口,可以这样做:首先打开“控制面板”,双击“管理工具”,再双击“服务”。接着在打开的服务窗口中找到并双击“Simple Mail Transfer Protocol (SMTP)”服务,单击“停止”按钮来停止该服务,然后在“启动类型”中选择“已禁用”,最后单击“确定”按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。开启端口如果要开启该端口只要先在“启动类型”选择“自动”,单击“确定”按钮,再打开该服务,在“服务状态”中单击“启动”按钮即可启用该端口,最后,单击“确定”按钮即可。提示:在Windows 98中没有“服务”选项,你可以使用防火墙的规则设置功能来关闭/开启端口。如何在WinXP/2000/2003下关闭和开放网络端口的详细方法第一步,点击开始菜单/设置/控制面板/管理工具,双击打开本地安全策略,选中IP 安全策略,在本地计算机,在右边窗格的空白位置右击鼠标,弹出快捷菜单,选择创建 IP 安全策略(如右图),于是弹出一个向导。在向导中点击下一步按钮,为新的安全策略命名;再按下一步,则显示安全通信请求画面,在画面上把激活默认相应规则左边的钩去掉,点击完成按钮就创建了一个新的IP 安全策略。第二步,右击该IP安全策略,在属性对话框中,把使用添加向导左边的钩去掉,然后单击添加按钮添加新的规则,随后弹出新规则属性对话框,在画面上点击添加按钮,弹出IP筛选器列表窗口;在列表中,首先把使用添加向导左边的钩去掉,然后再点击右边的添加按钮添加新的筛选器。第三步,进入筛选器属性对话框,首先看到的是寻址,源地址选任何 IP 地址,目标地址选我的 IP 地址;点击协议选项卡,在选择协议类型的下拉列表中选择TCP,然后在到此端口下的文本框中输入135,点击确定按钮(如左图),这样就添加了一个屏蔽 TCP 135(RPC)端口的筛选器,它可以防止外界通过135端口连上你的电脑。点击确定后回到筛选器列表的对话框,可以看到已经添加了一条策略,重复以上步骤继续添加 TCP 137、139、445、593 端口和 UDP 135、139、445 端口,为它们建立相应的筛选器。重复以上步骤添加TCP 1025、2745、3127、6129、3389 端口的屏蔽策略,建立好上述端口的筛选器,最后点击确定按钮。第四步,在新规则属性对话框中,选择新 IP 筛选器列表,然后点击其左边的圆圈上加一个点,表示已经激活,最后点击筛选器操作选项卡。在筛选器操作选项卡中,把使用添加向导左边的钩去掉,点击添加按钮,添加阻止操作(右图):在新筛选器操作属性的安全措施选项卡中,选择阻止,然后点击确定按钮。第五步、进入新规则属性对话框,点击新筛选器操作,其左边的圆圈会加了一个点,表示已经激活,点击关闭按钮,关闭对话框;最后回到新IP安全策略属性对话框,在新的IP筛选器列表左边打钩,按确定按钮关闭对话框。在本地安全策略窗口,用鼠标右击新添加的 IP 安全策略,然后选择指派。重新启动后,电脑中上述网络端口就被关闭了,病毒和黑客再也不能连上这些端口,从而保护了你的电脑。目前还没听说有补丁下载。端口分类逻辑意义上的端口有多种分类标准,下面将介绍两种常见的分类:按端口号分布划分(1)知名端口(Well-Known Ports)知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。(2)动态端口(Dynamic Ports)动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。不过,动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。按协议类型划分按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:(1)TCP端口TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。(2)UDP端口UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。常见网络端口端口:0服务:Reserved说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。端口:1服务:tcpmux说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。端口:7服务:Echo说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。端口:19服务:Character Generator说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。端口:21服务:FTP说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。端口:22服务:Ssh说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。端口:23服务:Telnet说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。端口:25服务:SMTP说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。端口:31服务:MSG Authentication说明:木马Master Paradise、Hackers Paradise开放此端口。端口:42服务:WINS Replication说明:WINS复制端口:53服务:Domain Name Server(DNS)说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。端口:67服务:Bootstrap Protocol Server说明:通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。端口:69服务:Trival File Transfer说明:许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何文件。它们也可用于系统写入文件。端口:79服务:Finger Server说明:入侵者用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描。端口:80服务:HTTP说明:用于网页浏览。木马Executor开放此端口。端口:99服务:Metagram Relay说明:后门程序ncx99开放此端口。端口:102服务:Message transfer agent(MTA)-X.400 over TCP/IP说明:消息传输代理。

51干警网 2019-12-02 03:20:36 0 浏览量 回答数 0

回答

转自:思否 本文作者:Michael van der Gulik 原文链接:《Why WebAssembly is a big deal》 译者:敖小剑 WebAssembly 是每个程序员都应该关注的技术。WebAssembly 会变得更流行。 WebAssembly 将取代 JavaScript。WebAssembly 将取代 HTML 和 CSS。 WebAssembly 将取代手机应用。WebAssembly 将取代桌面应用。在 10 年内,我保证每个程序员至少需要知道如何使用工具来操作 WebAssembly 并理解它是如何工作的。 你可能会说,“太离谱了!” 好吧,请继续阅读。 什么是 WebAssembly 当前形式的 WebAssembly 是 Web 浏览器的新扩展,可以运行预编译代码…快速地。在 C ++ 中编写了一些小代码,然后使用 Emscripten 编译器将该代码编译为 WebAssembly。通过一些 Javascript 粘合,就可以在 Web 浏览器中调用这一小段代码,例如,运行粒子模拟。 WebAssembly 文件,扩展名为.wasm,本身是包含可执行指令的二进制格式。要使用该文件,必须编写一个运行某些 Javascript 的 HTML 文件来获取、编译和执行 WebAssembly 文件。WebAssembly 文件在基于堆栈的虚拟机上执行,并使用共享内存与其 JavaScript 包装器进行通信。 到目前为止,这似乎并不有趣。它看起来只不过是 JavaScript 的加速器。但是,聪明的读者会对 WebAssembly 可能成为什么有所了解。 WebAssembly 将成为什么? 第一个重要发现是 WebAssembly 是一个安全的沙盒虚拟机。可以从 Internet 运行喜欢的 WebAssembly 代码,而确保它不会接管 PC 或服务器。四个主流 Web 浏览器对它的安全性非常有信心,它已经默认实现并启用了。它的真正安全性还有待观察,但安全性是 WebAssembly 的核心设计目标。 第二个重要发现是 WebAssembly 是一个通用的编译目标。它的原始编译器是一个 C 编译器,这个编译器很好地指示了 WebAssembly 虚拟机的低级和可重定向性。许多编程语言都使用 C 语言编写虚拟机,其他一些语言甚至使用 C 本身作为编译目标。 此时,有人整理了一个可以编译为 WebAssembly 的编程语言列表。这份名单将在未来很多年中继续增长。 WebAssembly 允许使用任何编程语言编写代码,然后让其他人在任何平台上安全地运行该代码,无需安装任何内容。朋友们,这是美好梦想的开始。 部署问题 我们来谈谈如何将软件提供给用户。 为新项目选择编程语言的一个重要因素是如何将项目部署到客户。您的程序员喜欢用 Haskell,Python,Visual Basic 或其他语言编写应用程序,具体取决于他们的喜好。要使用喜欢的语言,他们需要编译应用,制作一些可安装的软件包,并以某种方式将其安装在客户端的计算机上。有许多方法可以提供软件 - 包管理器,可执行安装程序或安装服务,如 Steam,Apple App Store,Google Play 或 Microsoft store。 每一个安装机制都意味着痛苦,从应用商店安装时的轻微疼痛,到管理员要求在他的 PC 上运行一些旧的 COBOL 代码时的集群头痛。 部署是一个问题。对于开发人员和系统管理员来说,部署一直是一个痛点。我们使用的编程语言与我们所针对的平台密切相关。如果大量用户在 PC 或移动设备上,我们使用 HTML 和 Javascript。如果用户是 Apple 移动设备用户,我们使用……呃…… Swift?(我实际上不知道)。如果用户在 Android 设备上,我们使用 Java 或 Kotlin。如果用户在真实计算机上并且愿意处理掉他们的部署问题,那么我们开发人员才能在我们使用的编程语言中有更多选择。 WebAssembly 有可能解决部署问题。 有了 WebAssembly,您可以使用任何编程语言编写应用,只要这些编程语言可以支持 WebAssembly,而应用可以在任何设备和任何具有现代 Web 浏览器的操作系统上运行。 硬件垄断 想购买台式机或笔记本电脑。有什么选择?好吧,有英特尔,有 AMD。多年来一直是双寡头垄断。保持这种双寡头垄断的一个原因是 x86 架构只在这两家公司之间交叉许可,而且通常预编译的代码需要 x86 或 x86-64(也就是 AMD-64)架构。还有其他因素,例如设计世界上最快的 CPU 是一件很艰难但也很昂贵的事情。 WebAssembly 是一种可让您在任何平台上运行代码的技术(之一)。如果它成为下一个风口,硬件市场将变得商品化。应用编译为 WebAssembly,就可以在任何东西上运行 - x86,ARM,RISC-V,SPARC。即便是操作系统市场也会商品化;您所需要的只是一个支持 WebAssembly 的浏览器,以便在硬件可以运行时运行最苛刻的应用程序。 编者注:Second State 研发的专为服务端优化的 WebAssembly 引擎 SSVM 已经可以运行在高通骁龙芯片上。Github 链接:https://github.com/second-sta... 云计算 但等等,还有更多。云计算成为IT经理办公室的流行词已有一段时间,WebAssembly 可以直接迎合它。 WebAssembly 在安全沙箱中执行。可以制作一个容器,它可以在服务器上接受和执行 WebAssembly 模块,而资源开销很小。对于提供的每个服务,无需在虚拟机上运行完整的操作系统。托管提供商只提供对可以上传代码的WebAssembly 容器的访问权限。它可以是一个原始容器,接收 socket 并解析自己的 HTTP 连接,也可以是一个完整的 Web 服务容器,其中 WebAssembly 模块只需要处理预解析的HTTP请求。 这还不存在。如果有人想变得富有,那么可以考虑这个想法。 编者注:目前已经有人正在实现这个想法,Byte Alliance 计划将WebAssembly 带到浏览器之外,Second State 已经发布了为服务端设计的WebAssembly 引擎开发者预览版。 不是云计算 WebAssembly 足以取代 PC 上本地安装的大多数应用程序。我们已经使用 WebGL(又名OpenGL ES 2.0)移植了游戏。我预测不久之后,受益于WebAssembly,像 LibreOffice 这样的大型应用可以直接从网站上获得,而无需安装。 在这种情况下,在本地安装应用没什么意义。本地安装的应用和 WebAssembly 应用之间几乎没有区别。WebAssembly 应用已经可以使用屏幕,键盘和鼠标进行交互。它可以在 2D 或 OpenGL 中进行图形处理,并使用硬件对视频流进行解码。可以播放和录制声音。可以访问网络摄像头。可以使用 WebSockets。可以使用 IndexedDB 存储大量数据在本地磁盘上。这些已经是 Web 浏览器中的标准功能,并且都可以使用 JavaScript 向 WebAssembly 暴露。 目前唯一困难的地方是 WebAssembly 无法访问本地文件系统。好吧,可以通过 HTML 使用文件上传对话,但这不算。最终,总会有人为此创建 API,并可能称之为 “WASI”。 “从互联网上运行应用程序!?胡说八道!“,你说。好吧,这是使用 Qt 和 WebAssembly 实现的文本编辑器 (以及更多)。 这是一个简单的例子。复杂的例子是在 WebBrowser 中运行的 Adobe Premier Pro 或 Blender。或者考虑像 Steam 游戏一样可以直接从网络上运行。这听起来像小说,但从技术上说这并非不能发生。 它会来的。 让我们裸奔! 目前,WebAssembly 在包含 HTML 和 Javascript 包装器的环境中执行。为什么不脱掉这些?有了 WebAssembly,为什么还要在浏览器中包含 HTML 渲染器和 JavaScript 引擎? 通过为所有服务提供标准化 API,这些服务通常是 Web 浏览器提供的,可以创建裸 WebAssembly。就是没有 HTML和 Javascript 包装来管理的 WebAssembly。访问的网页是 .wasm 文件,浏览器会抓取并运行该文件。浏览器为WebAssembly 模块提供画布,事件处理程序以及对浏览器提供的所有服务的访问。 这目前还不存在。如果现在使用 Web 浏览器直接访问 .wasm 文件,它会询问是否要下载它。我假设将设计所需的 API 并使其工作。 结果是 Web 可以发展。网站不再局限于 HTML,CSS 和 Javascript。可以创建全新的文档描述语言。可以发明全新的布局引擎。而且,对于像我这样的 polyglots 最相关,我们可以选择任何编程语言来实现在线服务。 可访问性 但我听到了强烈抗议!可访问性怎么样??搜索引擎怎么办? 好吧,我还没有一个好的答案。但我可以想象几种技术解决方案。 一个解决方案是我们保留内容和表现的分离。内容以标准化格式编写,例如 HTML。演示文稿由 WebAssembly 应用管理,该应用可以获取并显示内容。这允许网页设计师使用想要的任何技术进行任意演示 - 不需要 CSS,而搜索引擎和需要不同类型的可访问性的用户仍然可以访问内容。 请记住,许多 WebAssembly 应用并不是可以通过文本访问的,例如游戏和许多应用。盲人不会从图像编辑器中获得太多好处。 另一个解决方案是发明一个 API,它可以作为 WebAssembly 模块,来提供想在屏幕上呈现的 DOM,供屏幕阅读器或搜索引擎使用。基本上会有两种表示形式:一种是在图形画布上,另一种是产生结构化文本输出。 第三种解决方案是使用屏幕阅读器或搜索引擎可以使用的元数据来增强画布。执行 WebAssembly 并在画布上呈现内容,其中包含描述渲染内容的额外元数据。例如,该元数据将包括屏幕上的区域是否是菜单以及存在哪些选项,或者区域是否想要文本输入,以及屏幕上的区域的自然排序(也称为标签顺序)是什么。基本上,曾经在 HTML 中描述的内容现在被描述为具有元数据的画布区域。同样,这只是一个想法,它可能在实践中很糟糕。 可能是什么 1995年,Sun Microsystems 发布了 Java,带有 Java applets 和大量的宣传。有史以来第一次,网页可以做一些比 和 GIF 动画更有趣的事情。开发人员可以使应用完全在用户的 Web 浏览器中运行。它们没有集成到浏览器中,而是实现为繁重的插件,需要安装整个 JVM。1995年,这不是一个小的安装。applets 也需要一段时间来加载并使用大量内存。我们现在凭借大量内存,这不再是一个问题,但在 Java 生命的第一个十年里,它让体验变得令人厌烦。 applets 也不可靠。无法保证它们会运行,尤其是在用户使用 Microsoft 的实现时。他们也不安全,这是棺材里的最后一颗钉子。 以 JVM 为荣,其他语言最终演变为在 JVM 上运行。但现在,那艘船航行了。 FutureSplash / Macromedia / Adobe Flash 也是一个竞争者,但是是专有的,具有专有工具集和专有语言的专有格式。我读到他们确实在2009年开启了文件格式。最终从浏览器中删除了支持,因为它存在安全风险。 这里的结论是,如果希望您的技术存在于每个人的机器上,那么安全性就需要正视。我真诚地希望 WebAssembly 作为标准对安全问题做出很好的反应。 需要什么? WebAssembly 仍处于初期阶段。它目前能很好的运行代码,而规范版本是 1.0,二进制格式定型。目前正在开展SIMD 指令支持。通过 Web Workers 进行多线程处理也正在进行中。 工具可用,并将在未来几年不断改进。浏览器已经让你窥视 WebAssembly 文件。至少 Firefox 允许查看WebAssembly 字节码,设置断点并查看调用堆栈。我听说浏览器也有 profiling 支持。 语言支持包括一套不错的语言集合–C,C++和Rust是一流的公民。C#,Go和Lua显然有稳定的支持。Python,Scala,Ruby,Java和Typescript都有实验性支持。这可能是一个傲慢的陈述,但我真的相信任何想要在21世纪存在的语言都需要能够在 WebAssembly 上编译或运行。 在访问外部设备的 API 支持方面,我所知道的唯一可用于裸 WebAssembly 的 API 是 WASI,它允许文件和流访问等核心功能,允许 WebAssembly 在浏览器外运行。否则,任何访问外部世界的 API 都需要在浏览器中的 Javascript 中实现。除了本地机器上的文件访问,打印机访问和其他新颖的硬件访问(例如非标准蓝牙或USB设备)之外,应用所需的一切几乎都可以满足。“裸WebAssembly”并不是它成功的必要条件; 它只是一个小的优化,不需要浏览器包含对 HTML,CSS 或 Javascript 的支持。 我不确定在桌面环境中让 WebAssembly 成为一等公民需要什么。需要良好的复制和粘贴支持,拖放支持,本地化和国际化,窗口管理事件以及创建通知的功能。也许这些已经可以从网络浏览器中获得; 我经常惊讶与已经可能的事情。 引发爆炸的火花是创建允许现有应用移植的环境。如果创造了“用于 WebAssembly 的 Linux 子系统”,那么可以将大量现有的开源软件移植到 WebAssembly 上。它需要模拟一个文件系统 - 可以通过将文件系统的所有只读部分都缓存为 HTTP 请求来完成,并且所有可写部分都可以在内存中,远程存储或使用浏览器可以提供的任何文件访问。图形支持可以通过移植 X11 或 Wayland 的实现来使用 WebGL(我理解已经作为 AIGLX 存在?)。 一些 SDL 游戏已经被移植到 WebAssembly - 最着名的是官方演示。 一旦 JVM 在 WebAssembly 中运行,就可以在浏览器中运行大量的 Java 软件。同样适用于其他虚拟机和使用它们的语言。 与 Windows 软件的巨大世界一样,我没有答案。WINE 和 ReactOS 都需要底层的 x86 或 x86-64 机器,所以唯一的选择是获取源代码并移植它,或者使用 x86 模拟器。 尾声 WebAssembly 即将到来。 它来得很慢,但现在所有的部分都可以在你正在使用的浏览器上使用。现在我们等待构建用于从各种编程语言中定位 WebAssembly 的基础设施。一旦构建完成,我们将摆脱 HTML,CSS 和 Javascript 的束缚。 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 阿里云开发者社区

茶什i 2020-01-07 10:32:35 0 浏览量 回答数 0

回答

每当Python解释器读取源文件时,它就会做两件事: 它设置了一些特殊变量,例如__name__,然后 它执行文件中找到的所有代码。 让我们看看它是如何工作的,以及它与您有关__name__我们在Python脚本中经常看到的检查问题的关系。 代码样例 让我们使用稍微不同的代码示例来探索导入和脚本的工作方式。假设以下文件位于foo.py。 # Suppose this is foo.py. print("before import") import math print("before functionA") def functionA(): print("Function A") print("before functionB") def functionB(): print("Function B {}".format(math.sqrt(100))) print("before __name__ guard") if __name__ == '__main__': functionA() functionB() print("after __name__ guard") 特殊变量 当Python交互程序读取源文件时,它首先定义了一些特殊变量。在这种情况下,我们关心__name__变量。 当您的模块是主程序时 如果您将模块(源文件)作为主程序运行,例如 python foo.py 解释器将硬编码字符串赋值"main"给__name__变量,即 # It's as if the interpreter inserts this at the top # of your module when run as the main program. __name__ = "__main__" 当您的模块由另一个导入时 另一方面,假设其他模块是主程序,并且它将导入您的模块。这意味着在主程序中或主程序导入的某些其他模块中有这样的语句: # Suppose this is in some other main program. import foo 解释器将搜索您的foo.py文件(以及搜索其他一些变体),并在执行该模块之前,它将"foo"导入语句中的名称分配给__name__变量,即 # It's as if the interpreter inserts this at the top # of your module when it's imported from another module. __name__ = "foo" 执行模块的代码 设置特殊变量后,解释器一次执行一个语句,执行模块中的所有代码。您可能想要在代码示例侧面打开另一个窗口,以便您可以按照以下说明进行操作。 总是 它打印字符串"before import"(不带引号)。 它将加载math模块并将其分配给名为的变量math。这等效于替换import math为以下内容(请注意,这__import__是Python中的低级函数,它接受字符串并触发实际的导入): # Find and load a module given its string name, "math", # then assign it to a local variable called math. math = __import__("math") 它输出字符串"before functionA"。 它执行该def块,创建一个功能对象,然后将该功能对象分配给名为的变量functionA。 它输出字符串"before functionB"。 它执行第二个def块,创建另一个功能对象,然后将其分配给名为的变量functionB。 它输出字符串"before name guard"。 仅当您的模块是主程序时 如果您的模块是主程序,那么它将看到__name__确实已将其设置为,"main"并且它将调用两个函数,分别输出字符串"Function A"和"Function B 10.0"。 仅当您的模块由另一个导入时 (相反)如果您的模块不是主程序,而是由另一个程序导入的,__name__则将是"foo",而不是"main",它将跳过if语句的主体。 总是 "after name guard"在两种情况下都将打印字符串。 摘要 总而言之,这是两种情况下的打印内容: # What gets printed if foo is the main program before import before functionA before functionB before __name__ guard Function A Function B 10.0 after __name__ guard # What gets printed if foo is imported as a regular module before import before functionA before functionB before __name__ guard after __name__ guard 为什么这样工作? 您自然会想知道为什么有人会想要这个。好吧,有时您想编写一个.py文件,该文件既可以被其他程序和/或模块用作模块,也可以作为主程序本身运行。例子: 您的模块是一个库,但是您希望有一个脚本模式,在其中运行一些单元测试或演示。 您的模块仅用作主程序,但具有一些单元测试,并且测试框架通过导入.py脚本等文件并运行特殊的测试功能来工作。您不希望它只是因为正在导入模块而尝试运行脚本。 您的模块主要用作主程序,但它也为高级用户提供了程序员友好的API。 除了这些示例之外,可以优雅地用Python运行脚本只是设置一些魔术变量并导入脚本。“运行”脚本是导入脚本模块的副作用。 思想的食物 问题:我可以有多个__name__检查块吗?答:这样做很奇怪,但是这种语言不会阻止您。 假设以下内容在中foo2.py。如果python foo2.py在命令行上说会怎样?为什么? # Suppose this is foo2.py. def functionA(): print("a1") from foo2 import functionB print("a2") functionB() print("a3") def functionB(): print("b") print("t1") if __name__ == "__main__": print("m1") functionA() print("m2") print("t2") 现在,弄清楚如果删除__name__签入会发生什么foo3.py: # Suppose this is foo3.py. def functionA(): print("a1") from foo3 import functionB print("a2") functionB() print("a3") def functionB(): print("b") print("t1") print("m1") functionA() print("m2") print("t2") 当用作脚本时,它将做什么?当作为模块导入时? # Suppose this is in foo4.py __name__ = "__main__" def bar(): print("bar") print("before __name__ guard") if __name__ == "__main__": bar() print("after __name__ guard")

祖安文状元 2020-02-21 14:07:51 0 浏览量 回答数 0

回答

前言 这期我想写很久了,但是因为时间的原因一直拖到了现在,我以为一两天就写完了,结果从构思到整理资料,再到写出来用了差不多一周的时间吧。 你们也知道丙丙一直都是创作鬼才来的,所以我肯定不会一本正经的写,我想了好几个切入点,最后决定用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,我甚至还收集配套视频和资料,暖男石锤啊,这期是呕心沥血之作,不要白嫖了。 正文 在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线。 Tip:请多欣赏一会,每个点看一下,看看什么地方是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是比较全的,有什么建议也可以留言给我。 不知道大家都看了一下没,现在我们就要庖丁解牛了,我从上到下依次分析。 前端 你可能会会好奇,你不是讲后端学习路线嘛,为啥还有前端的部分,我只能告诉你,傻瓜,肤浅。 我们可不能闭门造车,谁告诉你后端就不学点前端了? 前端现在很多也了解后端的技术栈的,你想我们去一个网站,最先接触的,最先看到的是啥? 没错就是前端,在大学你要是找不到专门的前端同学,去做系统肯定也要自己顶一下前端的,那我觉得最基本的技术栈得熟悉和了解吧,丙丙现在也是偶尔会开发一下我们的管理系统主要是VUE和React。 在这里我列举了我目前觉得比较简单和我们后端可以了解的技术栈,都是比较基础的。 作为一名后端了解部分前端知识还是很有必要的,在以后开发的时候,公司有前端那能帮助你前后端联调更顺畅,如果没前端你自己也能顶一下简单的页面。 HTML、CSS、JS、Ajax我觉得是必须掌握的点,看着简单其实深究或者去操作的话还是有很多东西的,其他作为扩展有兴趣可以了解,反正入门简单,只是精通很难很难。 在这一层不光有这些还有Http协议和Servlet,request、response、cookie、session这些也会伴随你整个技术生涯,理解他们对后面的你肯定有不少好处。 Tip:我这里最后删除了JSP相关的技术,我个人觉得没必要学了,很多公司除了老项目之外,新项目都不会使用那些技术了。 前端在我看来比后端难,技术迭代比较快,知识好像也没特定的体系,所以面试大厂的前端很多朋友都说难,不是技术多难,而是知识多且复杂,找不到一个完整的体系,相比之下后端明朗很多,我后面就开始讲后端了。 网关层: 互联网发展到现在,涌现了很多互联网公司,技术更新迭代了很多个版本,从早期的单机时代,到现在超大规模的互联网时代,几亿人参与的春运,几千亿成交规模的双十一,无数互联网前辈的造就了现在互联网的辉煌。 微服务,分布式,负载均衡等我们经常提到的这些名词都是这些技术在场景背后支撑。 单机顶不住,我们就多找点服务器,但是怎么将流量均匀的打到这些服务器上呢? 负载均衡,LVS 我们机器都是IP访问的,那怎么通过我们申请的域名去请求到服务器呢? DNS 大家刷的抖音,B站,快手等等视频服务商,是怎么保证同时为全国的用户提供快速的体验? CDN 我们这么多系统和服务,还有这么多中间件的调度怎么去管理调度等等? zk 这么多的服务器,怎么对外统一访问呢,就可能需要知道反向代理的服务器。 Nginx 这一层做了反向负载、服务路由、服务治理、流量管理、安全隔离、服务容错等等都做了,大家公司的内外网隔离也是这一层做的。 我之前还接触过一些比较有意思的项目,所有对外的接口都是加密的,几十个服务会经过网关解密,找到真的路由再去请求。 这一层的知识点其实也不少,你往后面学会发现分布式事务,分布式锁,还有很多中间件都离不开zk这一层,我们继续往下看。 服务层: 这一层有点东西了,算是整个框架的核心,如果你跟我帅丙一样以后都是从事后端开发的话,我们基本上整个技术生涯,大部分时间都在跟这一层的技术栈打交道了,各种琳琅满目的中间件,计算机基础知识,Linux操作,算法数据结构,架构框架,研发工具等等。 我想在看这个文章的各位,计算机基础肯定都是学过的吧,如果大学的时候没好好学,我觉得还是有必要再看看的。 为什么我们网页能保证安全可靠的传输,你可能会了解到HTTP,TCP协议,什么三次握手,四次挥手。 还有进程、线程、协程,什么内存屏障,指令乱序,分支预测,CPU亲和性等等,在之后的编程生涯,如果你能掌握这些东西,会让你在遇到很多问题的时候瞬间get到点,而不是像个无头苍蝇一样乱撞(然而丙丙还做得不够)。 了解这些计算机知识后,你就需要接触编程语言了,大学的C语言基础会让你学什么语言入门都会快点,我选择了面向对象的JAVA,但是也不知道为啥现在还没对象。 JAVA的基础也一样重要,面向对象(包括类、对象、方法、继承、封装、抽象、 多态、消息解析等),常见API,数据结构,集合框架,设计模式(包括创建型、结构型、行为型),多线程和并发,I/O流,Stream,网络编程你都需要了解。 代码会写了,你就要开始学习一些能帮助你把系统变得更加规范的框架,SSM可以会让你的开发更加便捷,结构层次更加分明。 写代码的时候你会发现你大学用的Eclipse在公司看不到了,你跟大家一样去用了IDEA,第一天这是什么玩意,一周后,真香,但是这玩意收费有点贵,那免费的VSCode真的就是不错的选择了。 代码写的时候你会接触代码的仓库管理工具maven、Gradle,提交代码的时候会去写项目版本管理工具Git。 代码提交之后,发布之后你会发现很多东西需要自己去服务器亲自排查,那Linux的知识点就可以在里面灵活运用了,查看进程,查看文件,各种Vim操作等等。 系统的优化很多地方没优化的空间了,你可能会尝试从算法,或者优化数据结构去优化,你看到了HashMap的源码,想去了解红黑树,然后在算法网上看到了二叉树搜索树和各种常见的算法问题,刷多了,你也能总结出精华所在,什么贪心,分治,动态规划等。 这么多个服务,你发现HTTP请求已经开始有点不满足你的需求了,你想开发更便捷,像访问本地服务一样访问远程服务,所以我们去了解了Dubbo,Spring cloud。 了解Dubbo的过程中,你发现了RPC的精华所在,所以你去接触到了高性能的NIO框架,Netty。 代码写好了,服务也能通信了,但是你发现你的代码链路好长,都耦合在一起了,所以你接触了消息队列,这种异步的处理方式,真香。 他还可以帮你在突发流量的时候用队列做缓冲,但是你发现分布式的情况,事务就不好管理了,你就了解到了分布式事务,什么两段式,三段式,TCC,XA,阿里云的全局事务服务GTS等等。 分布式事务的时候你会想去了解RocketMQ,因为他自带了分布式事务的解决方案,大数据的场景你又看到了Kafka。 我上面提到过zk,像Dubbo、Kafka等中间件都是用它做注册中心的,所以很多技术栈最后都组成了一个知识体系,你先了解了体系中的每一员,你才能把它们联系起来。 服务的交互都从进程内通信变成了远程通信,所以性能必然会受到一些影响。 此外由于很多不确定性的因素,例如网络拥塞、Server 端服务器宕机、挖掘机铲断机房光纤等等,需要许多额外的功能和措施才能保证微服务流畅稳定的工作。 **Spring Cloud **中就有 Hystrix 熔断器、Ribbon客户端负载均衡器、Eureka注册中心等等都是用来解决这些问题的微服务组件。 你感觉学习得差不多了,你发现各大论坛博客出现了一些前沿技术,比如容器化,你可能就会去了解容器化的知识,像**Docker,Kubernetes(K8s)**等。 微服务之所以能够快速发展,很重要的一个原因就是:容器化技术的发展和容器管理系统的成熟。 这一层的东西呢其实远远不止这些的,我不过多赘述,写多了像个劝退师一样,但是大家也不用慌,大部分的技术都是慢慢接触了,工作中慢慢去了解,去深入的。 好啦我们继续沿着图往下看,那再往下是啥呢? 数据层: 数据库可能是整个系统中最值钱的部分了,在我码文字的前一天,刚好发生了微盟程序员删库跑路的操作,删库跑路其实是我们在网上最常用的笑话,没想到还是照进了现实。 这里也提一点点吧,36小时的故障,其实在互联网公司应该是个笑话了吧,权限控制没做好类似rm -rf 、fdisk、drop等等这样的高危命令是可以实时拦截掉的,备份,全量备份,增量备份,延迟备份,异地容灾全部都考虑一下应该也不至于这样,一家上市公司还是有点点不应该。 数据库基本的事务隔离级别,索引,SQL,主被同步,读写分离等都可能是你学的时候要了解到的。 上面我们提到了安全,不要把鸡蛋放一个篮子的道理大家应该都知道,那分库的意义就很明显了,然后你会发现时间久了表的数据大了,就会想到去接触分表,什么TDDL、Sharding-JDBC、DRDS这些插件都会接触到。 你发现流量大的时候,或者热点数据打到数据库还是有点顶不住,压力太大了,那非关系型数据库就进场了,Redis当然是首选,但是MongoDB、memcache也有各自的应用场景。 Redis使用后,真香,真快,但是你会开始担心最开始提到的安全问题,这玩意快是因为在内存中操作,那断点了数据丢了怎么办?你就开始阅读官方文档,了解RDB,AOF这些持久化机制,线上用的时候还会遇到缓存雪崩击穿、穿透等等问题。 单机不满足你就用了,他的集群模式,用了集群可能也担心集群的健康状态,所以就得去了解哨兵,他的主从同步,时间久了Key多了,就得了解内存淘汰机制…… 他的大容量存储有问题,你可能需要去了解Pika…. 其实远远没完,每个的点我都点到为止,但是其实要深究每个点都要学很久,我们接着往下看。 实时/离线/大数据 等你把几种关系型非关系型数据库的知识点,整理清楚后,你会发现数据还是大啊,而且数据的场景越来越多多样化了,那大数据的各种中间件你就得了解了。 你会发现很多场景,不需要实时的数据,比如你查你的支付宝去年的,上个月的账单,这些都是不会变化的数据,没必要实时,那你可能会接触像ODPS这样的中间件去做数据的离线分析。 然后你可能会接触Hadoop系列相关的东西,比如于Hadoop(HDFS)的一个数据仓库工具Hive,是建立在 Hadoop 文件系统之上的分布式面向列的数据库HBase 。 写多的场景,适合做一些简单查询,用他们又有点大材小用,那Cassandra就再合适不过了。 离线的数据分析没办法满足一些实时的常见,类似风控,那Flink你也得略知一二,他的窗口思想还是很有意思。 数据接触完了,计算引擎Spark你是不是也不能放过…… 搜索引擎: 传统关系型数据库和NoSQL非关系型数据都没办法解决一些问题,比如我们在百度,淘宝搜索东西的时候,往往都是几个关键字在一起一起搜索东西的,在数据库除非把几次的结果做交集,不然很难去实现。 那全文检索引擎就诞生了,解决了搜索的问题,你得思考怎么把数据库的东西实时同步到ES中去,那你可能会思考到logstash去定时跑脚本同步,又或者去接触伪装成一台MySQL从服务的Canal,他会去订阅MySQL主服务的binlog,然后自己解析了去操作Es中的数据。 这些都搞定了,那可视化的后台查询又怎么解决呢?Kibana,他他是一个可视化的平台,甚至对Es集群的健康管理都做了可视化,很多公司的日志查询系统都是用它做的。 学习路线 看了这么久你是不是发现,帅丙只是一直在介绍每个层级的技术栈,并没说到具体的一个路线,那是因为我想让大家先有个认知或者说是扫盲吧,我一样用脑图的方式汇总一下吧,如果图片被平台二压了。 资料/学习网站 Tip:本来这一栏有很多我准备的资料的,但是都是外链,或者不合适的分享方式,博客的运营小姐姐提醒了我,所以大家去公众号回复【路线】好了。 絮叨 如果你想去一家不错的公司,但是目前的硬实力又不到,我觉得还是有必要去努力一下的,技术能力的高低能决定你走多远,平台的高低,能决定你的高度。 如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。 丙丙发现在工作中发现我身边的人真的就是实力越强的越努力,最高级的自律,享受孤独(周末的歪哥)。 总结 我提到的技术栈你想全部了解,我觉得初步了解可能几个月就够了,这里的了解仅限于你知道它,知道他是干嘛的,知道怎么去使用它,并不是说深入了解他的底层原理,了解他的常见问题,熟悉问题的解决方案等等。 你想做到后者,基本上只能靠时间上的日积月累,或者不断的去尝试积累经验,也没什么速成的东西,欲速则不达大家也是知道的。 技术这条路,说实话很枯燥,很辛苦,但是待遇也会高于其他一些基础岗位。 所实话我大学学这个就是为了兴趣,我从小对电子,对计算机都比较热爱,但是现在打磨得,现在就是为了钱吧,是不是很现实?若家境殷实,谁愿颠沛流离。 但是至少丙丙因为做软件,改变了家庭的窘境,自己日子也向小康一步步迈过去。 说做程序员改变了我和我家人的一生可能夸张了,但是我总有一种下班辈子会因为我选择走这条路而改变的错觉。 我是敖丙,一个在互联网苟且偷生的工具人。 创作不易,本期硬核,不想被白嫖,各位的「三连」就是丙丙创作的最大动力,我们下次见! 本文 GitHub https://github.com/JavaFamily 已经收录,有大厂面试完整考点,欢迎Star。 该回答来自:敖丙

剑曼红尘 2020-03-06 11:35:37 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档  各运营商 DNS 也就是“本地 DNS”,主要是指各地电信运营商提供的域名解析服务器。 您的网站、邮箱等应用的域名,通过设置域名解析来达到访问效果。互联网的 DNS 提供正常的域名解析指向服务,而您本地电脑设置的 DNS 服务器,则是获取互联网上的这些解析地址,本地 DNS 是否正常,直接决定了能否上网或顺利打开网站。一般来说系统内是采用自动设置 DNS 服务器地址,环境多样性造成有时候会出现一些问题,如以下例子,我们需要自行更改自己电脑的 DNS 来进行解决: 在访问网站的过程中,我们或许经常会遭遇无法访问网页的现象,遇到这种现象时,相信多数人会认为是网络掉线,或者是目标网站出现了问题,可是在一番仔细排查之后,并不是由这些因素引起的,那么究竟是什么原因让网页内容无法打开呢? 事实上,在网络连接以及目标服务器都正常的情况下,造成网页无法打开现象最可能的原因就是 DNS 服务发生了意外,导致网站地址被无法正常解析,就像开车找不到目的地了,而且自动设置的DNS 服务运行不正常的现象十分常见。那么如何能够确认网页打开故障就是 DNS 服务引起的呢?遇到 DNS 服务运行不正常时,我们又该如何让 DNS 服务快速恢复常态呢? 通常情况下,我们访问某个目标网站时都是通过输入形如“www.aaa.com”格式的网址来完成访问任务的,以域名的形式来访问网站内容,输入的网站地址会被自动解析翻译成 IP 地址;一旦 DNS 服务器运行不正常,无法提供地址解析服务或者将域名解析成错误的 IP 地址时,我们就无法通过网站域名的形式打开目标站点的页面内容了。 在遇到网页内容无法打开,并且怀疑 DNS 服务运行不正常时,我们首先要做的事情就是可以利用 Windows 系统自带的 nslookup 命令来确认一下本地的 DNS 服务是否真的运行不正常,下面就是确认 DNS 服务运行是否正常的具体操作步骤: 首先在本地工作站系统桌面中打开“开始”菜单,并执行其中的“运行”命令,从弹出的系统对话框中输入字符串命令“cmd”,单击“确定”按钮后,将系统屏幕切换到 MS-DOS 命令行工作模式; 其次在 DOS 命令行中输入字符串命令“nslookup -q=ns www.net.cn”,单击回车键后要是在地址解析过程中 DNS 服务运行不正常的话,那我们会在结果界面中只看到“DNS request timed out,timeout was 2 seconds”这样的提示信息。   在确认网站内容无法打开是由于地址不能被解析后,我们下一步就是要进行 DNS 修改,进入到本地工作站的 TCP/IP 属性设置窗口,将 DNS 地址更换成其他能够运行正常的 DNS 服务器地址,就能解决无法打开网页的问题了,如下图中举例为 google 和万网提供的 DNS 地址,您也可以在网上搜索其他的 DNS 使用。 如您在一个内部网络中,可以请单位网络管理人员检查一下局域网内部的 DNS 服务器是否运行正常,只要解决了 DNS 服务器的运行故障,一般就能够顺利解决网页无法打开故障了。 (图中以win7系统为例,如XP系统,也可在控制面板中找到网络与连接,之后具体更改流程则是一样的)    l ?例1: google 提供的 DNS :8.8.8.8和8.8.4.4    例2:万网的 DNS:223.5.5.5 和 223.6.6.6 因为 DNS 服务受到本身与网络线路等方面的因素,所以遇到 DNS 服务运行不正常的现象是有小机率发生的事情,面对这种故障现象我们只要依照本文所提供的应对要决进行逐一尝试,相信 DNS 解析错误故障一定会快速被排除掉。      

2019-12-01 23:32:18 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档  各运营商 DNS 也就是“本地 DNS”,主要是指各地电信运营商提供的域名解析服务器。 您的网站、邮箱等应用的域名,通过设置域名解析来达到访问效果。互联网的 DNS 提供正常的域名解析指向服务,而您本地电脑设置的 DNS 服务器,则是获取互联网上的这些解析地址,本地 DNS 是否正常,直接决定了能否上网或顺利打开网站。一般来说系统内是采用自动设置 DNS 服务器地址,环境多样性造成有时候会出现一些问题,如以下例子,我们需要自行更改自己电脑的 DNS 来进行解决: 在访问网站的过程中,我们或许经常会遭遇无法访问网页的现象,遇到这种现象时,相信多数人会认为是网络掉线,或者是目标网站出现了问题,可是在一番仔细排查之后,并不是由这些因素引起的,那么究竟是什么原因让网页内容无法打开呢? 事实上,在网络连接以及目标服务器都正常的情况下,造成网页无法打开现象最可能的原因就是 DNS 服务发生了意外,导致网站地址被无法正常解析,就像开车找不到目的地了,而且自动设置的DNS 服务运行不正常的现象十分常见。那么如何能够确认网页打开故障就是 DNS 服务引起的呢?遇到 DNS 服务运行不正常时,我们又该如何让 DNS 服务快速恢复常态呢? 通常情况下,我们访问某个目标网站时都是通过输入形如“www.aaa.com”格式的网址来完成访问任务的,以域名的形式来访问网站内容,输入的网站地址会被自动解析翻译成 IP 地址;一旦 DNS 服务器运行不正常,无法提供地址解析服务或者将域名解析成错误的 IP 地址时,我们就无法通过网站域名的形式打开目标站点的页面内容了。 在遇到网页内容无法打开,并且怀疑 DNS 服务运行不正常时,我们首先要做的事情就是可以利用 Windows 系统自带的 nslookup 命令来确认一下本地的 DNS 服务是否真的运行不正常,下面就是确认 DNS 服务运行是否正常的具体操作步骤: 首先在本地工作站系统桌面中打开“开始”菜单,并执行其中的“运行”命令,从弹出的系统对话框中输入字符串命令“cmd”,单击“确定”按钮后,将系统屏幕切换到 MS-DOS 命令行工作模式; 其次在 DOS 命令行中输入字符串命令“nslookup -q=ns www.net.cn”,单击回车键后要是在地址解析过程中 DNS 服务运行不正常的话,那我们会在结果界面中只看到“DNS request timed out,timeout was 2 seconds”这样的提示信息。   在确认网站内容无法打开是由于地址不能被解析后,我们下一步就是要进行 DNS 修改,进入到本地工作站的 TCP/IP 属性设置窗口,将 DNS 地址更换成其他能够运行正常的 DNS 服务器地址,就能解决无法打开网页的问题了,如下图中举例为 google 和万网提供的 DNS 地址,您也可以在网上搜索其他的 DNS 使用。 如您在一个内部网络中,可以请单位网络管理人员检查一下局域网内部的 DNS 服务器是否运行正常,只要解决了 DNS 服务器的运行故障,一般就能够顺利解决网页无法打开故障了。 (图中以win7系统为例,如XP系统,也可在控制面板中找到网络与连接,之后具体更改流程则是一样的)    l ?例1: google 提供的 DNS :8.8.8.8和8.8.4.4    例2:万网的 DNS:223.5.5.5 和 223.6.6.6 因为 DNS 服务受到本身与网络线路等方面的因素,所以遇到 DNS 服务运行不正常的现象是有小机率发生的事情,面对这种故障现象我们只要依照本文所提供的应对要决进行逐一尝试,相信 DNS 解析错误故障一定会快速被排除掉。      

2019-12-01 23:32:18 0 浏览量 回答数 0

问题

【直播回顾】21天搭建推荐系统:实现“千人千面”个性化推荐(含视频)

小柒2012 2019-12-01 21:21:27 7489 浏览量 回答数 1

问题

Java技术1000问(3)【精品问答】

问问小秘 2020-06-02 14:27:10 42 浏览量 回答数 1

问题

阿里云Centos5.4(32位)系统优化教程

ap6779g4h 2019-12-01 20:21:47 29336 浏览量 回答数 17

问题

最大限度利用 JavaScript 和 Ajax 性能:报错

kun坤 2020-06-05 22:56:50 0 浏览量 回答数 1

问题

Web测试方法

技术小菜鸟 2019-12-01 21:41:32 7022 浏览量 回答数 1

回答

一、软件篇 1、设定虚拟内存 硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般Windows预设的是由系统自行管理虚拟内存,它会因应不同程序所需而自动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担,令系统运作变慢!有见及此,用户最好自定虚拟内存的最小值和最大值,避免经常变换大小。要设定虚拟内存,在“我的电脑”上按右键选择“属性”,在“高级”选项里的“效能”的对话框中,对“虚拟内存”进行设置。 3、检查应用软件或者驱动程序 有些程序在电脑系统启动会时使系统变慢。如果要是否是这方面的原因,我们可以从“安全模式”启动。因为这是原始启动,“安全模式”运行的要比正常运行时要慢。但是,如果你用“安全模式”启动发现电脑启动速度比正常启动时速度要快,那可能某个程序是导致系统启动速度变慢的原因。 4、桌面图标太多会惹祸 桌面上有太多图标也会降低系统启动速度。Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多,所花费的时间当然就越多。同时有些杀毒软件提供了系统启动扫描功能,这将会耗费非常多的时间,其实如果你已经打开了杀毒软件的实时监视功能,那么启动时扫描系统就显得有些多余,还是将这项功能禁止吧! 建议大家将不常用的桌面图标放到一个专门的文件夹中或者干脆删除! 5、ADSL导致的系统启动变慢 默认情况下Windows XP在启动时会对网卡等网络设备进行自检,如果发现网卡的IP地址等未配置好就会对其进行设置,这可能是导致系统启动变慢的真正原因。这时我们可以打开“本地连接”属性菜单,双击“常规”项中的“Internet协议”打开“TCP/IP属性”菜单。将网卡的IP地址配置为一个在公网(默认的网关是192.168.1.1)中尚未使用的数值如192.168.1.X,X取介于2~255之间的值,子网掩码设置为255.255.255.0,默认网关和DNS可取默认设置。 6、字体对速度的影响 虽然 微软 声称Windows操作系统可以安装1000~1500种字体,但实际上当你安装的字体超过500 种时,就会出现问题,比如:字体从应用程序的字体列表中消失以及Windows的启动速度大幅下降。在此建议最好将用不到或者不常用的字体删除,为避免删除后发生意外,可先进行必要的备份。 7、删除随机启动程序 何谓随机启动程序呢?随机启动程序就是在开机时加载的程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、popkiller 之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。 8、取消背景和关闭activedesktop 不知大家有否留意到,我们平时一直摆放在桌面上漂亮的背景,其实是很浪费计算机资源的!不但如此,而且还拖慢计算机在执行应用程序时的速度!本想美化桌面,但又拖慢计算机的速度,这样我们就需要不在使用背景了,方法是:在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,选“无”,在“外观”的对话框中,在桌面预设的青绿色,改为黑色......至于关闭activedesktop,即是叫你关闭从桌面上的web画面,例如在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,有一幅背景,名为Windows XX,那副就是web画面了!所以如何系统配置不高就不要开启。 10、把Windows变得更苗条 与DOS系统相比,Windows过于庞大,而且随着你每天的操作,安装新软件、加载运行库、添加新游戏等等使得它变得更加庞大,而更为重要的是变大的不仅仅是它的目录,还有它的 注册表 和运行库。因为即使删除了某个程序,可是它使用的DLL文件仍然会存在,因而随着使用日久,Windows的启动和退出时需要加载的DLL动态链接库文件越来越大,自然系统运行速度也就越来越慢了。这时我们就需要使用一些彻底删除DLL的程序,它们可以使Windows恢复苗条的身材。建议极品玩家们最好每隔两个月就重新安装一遍Windows,这很有效。 11、更改系统开机时间 虽然你已知道了如何新增和删除一些随机启动程序,但你又知不知道,在开机至到进入Windows的那段时间,计算机在做着什么呢?又或者是,执行着什么程序呢?那些程序,必定要全部载完才开始进入Windows,你有否想过,如果可删除一些不必要的开机时的程序,开机时的速度会否加快呢?答案是会的!想要修改,可按"开始",选"执行",然后键入win.ini,开启后,可以把以下各段落的内容删除,是删内容,千万不要连标题也删除!它们包括:[compatibility]、[compatibility32]、[imecompatibility]、[compatibility95]、[modulecompatibility]和[embedding]。 二、硬件篇 1、Windows系统自行关闭硬盘DMA模式 硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出来了!一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作用。但是你知道吗?Windows 2000、XP、2003系统有时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!这就造成在使用以上系统中硬盘性能突然下降,其中最明显的现象有:系统起动速度明显变慢,一般来说正常Windows XP系统启动时那个由左向右运动的滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一些大的软件时CPU占用率时常达到100%而产生停顿,玩一些大型3D游戏时画面时有明显停顿,出现以上问题时大家最好看看自己硬盘的DMA模式是不是被Windows 系统自行关闭了。查看自己的系统是否打开DMA模式: a. 双击“管理工具”,然后双击“计算机管理”; b. 单击“系统工具”,然后单击“设备管理器”; c. 展开“IDE ATA/ATAPI 控制器”节点; d. 双击您的“主要IDE控制器”; 2、CPU 和风扇是否正常运转并足够制冷 当CPU风扇转速变慢时,CPU本身的温度就会升高,为了保护CPU的安全,CPU就会自动降低运行频率,从而导致计算机运行速度变慢。有两个方法检测CPU的温度。你可以用“手指测法”用手指试一下处理器的温度是否烫手,但是要注意的是采用这种方法必须先拔掉电源插头,然后接一根接地线来防止身上带的静电击穿CPU以至损坏。另一个比较科学的方法是用带感温器的万用表来检测处理器的温度。 因为处理器的种类和型号不同,合理温度也各不相同。但是总的来说,温度应该低于 110 度。如果你发现处理器的测试高于这处温度,检查一下机箱内的风扇是否正常运转。 3、USB和扫描仪造成的影响 由于Windows 启动时会对各个驱动器(包括光驱)进行检测,因此如果光驱中放置了光盘,也会延长电脑的启动时间。所以如果电脑安装了扫描仪等设备,或在启动时已经连接了USB硬盘,那么不妨试试先将它们断开,看看启动速度是不是有变化。一般来说,由于USB接口速度较慢,因此相应设备会对电脑启动速度有较明显的影响,应该尽量在启动后再连接USB设备。如果没有USB设备,那么建议直接在BIOS设置中将USB功能关闭。 4、是否使用了磁盘压缩 因为“磁盘压缩”可能会使电脑性能急剧下降,造成系统速度的变慢。所以这时你应该检测一下是否使用了“磁盘压缩”,具体操作是在“我的电脑”上点击鼠标右键,从弹出的菜单选择“属性”选项,来检查驱动器的属性。 5、网卡造成的影响 只要设置不当,网卡也会明显影响系统启动速度,你的电脑如果连接在局域网内,安装好网卡驱动程序后,默认情况下系统会自动通过DHCP来获得IP地址,但大多数公司的局域网并没有DHCP服务器,因此如果用户设置成“自动获得IP地址”,系统在启动时就会不断在网络中搜索DHCP 服务器,直到获得IP 地址或超时,自然就影响了启动时间,因此局域网用户最好为自己的电脑指定固定IP地址。 6、文件夹和打印机共享 安装了Windows XP专业版的电脑也会出现启动非常慢的时候,有些时候系统似乎给人死机的感觉,登录系统后,桌面也不出现,电脑就像停止反应,1分钟后才能正常使用。这是由于使用了Bootvis.exe 程序后,其中的Mrxsmb.dll文件为电脑启动添加了67秒的时间! 要解决这个问题,只要停止共享文件夹和打印机即可:选择“开始→设置→网络和拨号连接”,右击“本地连接”,选择“属性”,在打开的窗口中取消“此连接使用下列选定的组件”下的“ Microsoft 网络的文件和打印机共享”前的复选框,重启电脑即可。 7、系统配件配置不当 一些用户在组装机器时往往忽略一些小东西,从而造成计算机整体配件搭配不当,存在着速度上的瓶颈。比如有些朋友选的CPU档次很高,可声卡等却买了普通的便宜货,其实这样做往往是得不偿失。因为这样一来计算机在运行游戏、播放影碟时由于声卡占用CPU资源较高且其数据传输速度较慢,或者其根本无硬件解码而需要采用软件解码方式,常常会引起声音的停顿,甚至导致程序的运行断断续续。又如有些朋友的机器是升了级的,过去老机器上的一些部件如内存条舍不得抛弃,装在新机器上照用,可是由于老内存的速度限制,往往使新机器必须降低速度来迁就它,从而降低了整机的性能,极大地影响了整体的运行速度。 9、断开不用的网络驱动器 为了消除或减少 Windows 必须重新建立的网络连接数目,建议将一些不需要使用的网络驱动器断开,也就是进入“我的电脑”,右击已经建立映射的网络驱动器,选择“断开”即可。 10、缺少足够的内存 Windows操作系统所带来的优点之一就是多线性、多任务,系统可以利用CPU来进行分时操作,以便你同时做许多事情。但事情有利自然有弊,多任务操作也会对你的机器提出更高的要求。朋友们都知道即使是一个最常用的WORD软件也要求最好有16MB左右的内存,而运行如3D MAX等大型软件时,64MB的内存也不够用。所以此时系统就会自动采用硬盘空间来虚拟主内存,用于运行程序和储存交换文件以及各种临时文件。由于硬盘是机械结构,而内存是电子结构,它们两者之间的速度相差好几个数量级,因而使用硬盘来虚拟主内存将导致程序运行的速度大幅度降低。 11、硬盘空间不足 使用Windows系统平台的缺点之一就是对文件的管理不清楚,你有时根本就不知道这个文件对系统是否有用,因而Windows目录下的文件数目越来越多,容量也越来越庞大,加之现在的软件都喜欢越做越大,再加上一些系统产生的临时文件、交换文件,所有这些都会使得硬盘可用空间变小。当硬盘的可用空间小到一定程度时,就会造成系统的交换文件、临时文件缺乏可用空间,降低了系统的运行效率。更为重要的是由于我们平时频繁在硬盘上储存、删除各种软件,使得硬盘的可用空间变得支离破碎,因此系统在存储文件时常常没有按连续的顺序存放,这将导致系统存储和读取文件时频繁移动磁头,极大地降低了系统的运行速度。 12、硬盘分区太多也有错 如果你的Windows 2000没有升级到SP3或SP4,并且定义了太多的分区,那么也会使启动变得很漫长,甚至挂起。所以建议升级最新的SP4,同时最好不要为硬盘分太多的区。因为Windows 在启动时必须装载每个分区,随着分区数量的增多,完成此操作的时间总量也会不断增长。 三、病毒篇 如果你的计算机感染了病毒,那么系统的运行速度会大幅度变慢。病毒入侵后,首先占领内存这个据点,然后便以此为根据地在内存中开始漫无休止地复制自己,随着它越来越庞大,很快就占用了系统大量的内存,导致正常程序运行时因缺少主内存而变慢,甚至不能启动;同时病毒程序会迫使CPU转而执行无用的垃圾程序,使得系统始终处于忙碌状态,从而影响了正常程序的运行,导致计算机速度变慢。下面我们就介绍几种能使系统变慢的病毒。 1、使系统变慢的bride病毒 病毒类型:黑客程序 发作时间:随机 传播方式:网络 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 2000、Windows XP等操作系统环境下正常运行。运行时会自动连接 www.hotmail.com网站,如果无法连接到此网站,则病毒会休眠几分钟,然后修改注册表将自己加入注册表自启动项,病毒会释放出四个病毒体和一个有漏洞的病毒邮件并通过邮件系统向外乱发邮件,病毒还会释放出FUNLOVE病毒感染局域网计算机,最后病毒还会杀掉已知的几十家反病毒软件,使这些反病毒软件失效。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒。 ·病毒运行后会自动连接 www.hotmail.com网站。 ·病毒会释放出Bride.exe,Msconfig.exe,Regedit.exe三个文件到系统目录;释放出:Help.eml, Explorer.exe文件到桌面。 ·病毒会在注册表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun项中加入病毒Regedit.exe的路径。 ·病毒运行时会释放出一个FUNLOVE病毒并将之执行,而FUNLOVE病毒会在计算机中大量繁殖,造成系统变慢,网络阻塞。 ·病毒会寻找计算机中的邮件地址,然后按照地址向外大量发送标题为:<被感染的计算机机名>(例:如果用户的计算机名为:张冬, 则病毒邮件的标题为:张冬)的病毒邮件。 ·病毒还会杀掉几十家国外著名的反病毒软件。 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了Bride(Worm.bride)病毒,请用户立刻用手中的杀毒软件进行清除。 2、使系统变慢的阿芙伦病毒 病毒类型:蠕虫病毒 发作时间:随机 传播方式:网络/文件 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 9X、Windows NT、Windows 2000、Windows XP等操作系统环境下正常运行。病毒运行时将自己复到到TEMP、SYSTEM、RECYCLED目录下,并随机生成文件名。该病毒运行后,会使消耗大量的系统资源,使系统明显变慢,并且杀掉一些正在运行的反病毒软件,建立四个线程在局域网中疯狂传播。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒: ·病毒运行时会将自己复到到TEMP、SYSTEM、RECYCLED目录下,文件名随机 ·病毒运行时会使系统明显变慢 ·病毒会杀掉一些正在运行的反病毒软件 ·病毒会修改注册表的自启动项进行自启动 ·病毒会建立四个线程在局域网中传播 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了“阿芙伦(Worm.Avron)”病毒,由于此病毒没有固定的病毒文件名,所以,最好还是选用杀毒软件进行清除。 3、恶性蠕虫 震荡波 病毒名称: Worm.Sasser 中文名称: 震荡波 病毒别名: W32/Sasser.worm [Mcafee] 病毒类型: 蠕虫 受影响系统:WinNT/Win2000/WinXP/Win2003 病毒感染症状: ·莫名其妙地死机或重新启动计算机; ·系统速度极慢,cpu占用100%; ·网络变慢; ·最重要的是,任务管理器里有一个叫"avserve.exe"的进程在运行! 破坏方式: ·利用WINDOWS平台的 Lsass 漏洞进行广泛传播,开启上百个线程不停攻击其它网上其它系统,堵塞网络。病毒的攻击行为可让系统不停的倒计时重启。 ·和最近出现的大部分蠕虫病毒不同,该病毒并不通过邮件传播,而是通过命令易受感染的机器 下载特定文件并运行,来达到感染的目的。 ·文件名为:avserve.exe 解决方案: ·请升级您的操作系统,免受攻击 ·请打开个人防火墙屏蔽端口:445、5554和9996,防止名为avserve.exe的程序访问网络 ·手工解决方案: 首先,若系统为WinMe/WinXP,则请先关闭系统还原功能; 步骤一,使用进程程序管理器结束病毒进程 右键单击任务栏,弹出菜单,选择“任务管理器”,调出“Windows任务管理器”窗口。在任务管理器中,单击“进程”标签,在例表栏内找到病毒进程“avserve.exe”,单击“结束进程按钮”,点击“是”,结束病毒进程,然后关闭“Windows任务管理器”; 步骤二,查找并删除病毒程序 通过“我的电脑”或“资源管理器”进入 系统安装目录(Winnt或windows),找到文件“avser ve.exe”,将它删除;然后进入系统目录(Winntsystem32或windowssystem32),找 到文件"*_up.exe", 将它们删除; 步骤三,清除病毒在注册表里添加的项 打开注册表编辑器: 点击开始——>运行, 输入REGEDIT, 按Enter; 在左边的面板中, 双击(按箭头顺序查找,找到后双击): HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun 在右边的面板中, 找到并删除如下项目:"avserve.exe" = %SystemRoot%avserve.exe 关闭注册表编辑器。 第二部份 系统加速 一、Windows 98 1、不要加载太多随机启动程序 不要在开机时载入太多不必要的随机启动程序。选择“开始→程序→附件→系统工具→系统信息→系统信息对话框”,然后,选择“工具→系统配置实用程序→启动”,只需要internat.exe前打上钩,其他项都可以不需要,选中后确定重起即可。 2、转换系统文件格式 将硬盘由FAT16转为FAT32。 3、不要轻易使用背景 不要使用ActiveDesktop,否则系统运行速度会因此减慢(右击屏幕→寻显示器属性→Web标签→将其中关于“活动桌面”和“频道”的选项全部取消)。 4、设置虚拟内存 自己设定虚拟内存为机器内存的3倍,例如:有32M的内存就设虚拟内存为96M,且最大值和最小值都一样(此设定可通过“控制面板→系统→性能→虚拟内存”来设置)。 5、一些优化设置 a、到控制面板中,选择“系统→性能→ 文件系统”。将硬盘标签的“计算机主要用途”改为网络服务器,“预读式优化"调到全速。 b、将“软盘”标签中“每次启动就搜寻新的软驱”取消。 c、CD-ROM中的“追加高速缓存”调至最大,访问方式选四倍速或更快的CD-ROM。 6、定期对系统进行整理 定期使用下列工具:磁盘扫描、磁盘清理、碎片整理、系统文件检查器(ASD)、Dr?Watson等。 二、Windows 2000 1、升级文件系统 a、如果你所用的操作系统是win 9x与win 2000双重启动的话,建议文件系统格式都用FAT32格式,这样一来可以节省硬盘空间,二来也可以9x与2000之间能实行资源共享。 提醒:要实现这样的双重启动,最好是先在纯DOS环境下安装完9x在C区,再在9x中或者用win 2000启动盘启动在DOS环境下安装2000在另一个区内,并且此区起码要有800M的空间以上 b、如果阁下只使用win 2000的话,建议将文件系统格式转化为NTFS格式,这样一来可节省硬盘空间,二来稳定性和运转速度更高,并且此文件系统格式有很好的纠错性;但这样一来,DOS和win 9x系统就不能在这文件系统格式中运行,这也是上面所说做双启动最好要用FAT32格式才能保证资源共享的原因。而且,某些应用程序也不能在此文件系统格式中运行,大多是DOS下的游戏类。 提醒:在win 2000下将文件系统升级为NTFS格式的方法是,点击“开始-程序-附件”选中“命令提示符”,然后在打开的提示符窗口输入"convert drive_letter:/fs:ntfs",其中的"drive"是你所要升级的硬盘分区符号,如C区;还需要说明的是,升级文件系统,不会破坏所升级硬盘分区里的文件,无需要备份。 · 再运行“添加-删除程序”,就会看见多出了个“添加/删除 Windows 组件”的选项; b、打开“文件夹选项”,在“查看”标签里选中“显示所有文件和文件夹”,此时在你安装win 2000下的区盘根目录下会出现Autoexec.bat和Config.sys两个文件,事实上这两个文件里面根本没有任何内容,可以将它们安全删除。 c、右击“我的电脑”,选中“管理”,在点“服务和应用程序”下的“服务”选项,会看见win 2000上加载的各个程序组见,其中有许多是关于局域网设置或其它一些功能的,你完全可以将你不使用的程序禁用; 如:Alertr,如果你不是处于局域网中,完全可以它设置为禁用;还有Fax Service,不发传真的设置成禁用;Print Spooler,没有打印机的设置成制用;Uninterruptible power Supply,没有UPS的也设置成禁用,这些加载程序你自己可以根据自己实际情况进行设置。 各个加载程序后面都有说明,以及运行状态;选中了要禁用的程序,右击它,选“属性”,然后单击停止,并将“启动类型”设置为“手动”或者“已禁用”就行了 d、关掉调试器Dr. Watson; 运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十兆的空间。这是出错程序的现场,对我们没用。另外蓝屏时出现的memory.dmp也可删掉。可在我的电脑/属性中关掉 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:15:52 0 浏览量 回答数 0

问题

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2019-12-01 21:57:52 74299 浏览量 回答数 28

回答

1.1 认识视图界面 和大多编辑器一样,该有的基本都有。 1.2 文件夹和文件的打开 文件——>打开文件夹/打开文件 1.3 新建文件/文件夹 新建文件: a. 文件——>新建文件; b. 按Ctrl+n; c. 点文件夹名后面的+号图标。 新建文件夹: 点文件夹名后面的+号图标。 1.4 拆分编辑器(分列) 快加键:Ctrl+\ 点击拆分编辑器图标(右上角)进行拆分编辑器。拆分完毕之后,可以通过鼠标点击拖动文件到相应的列。多列同时浏览免去多文件来回切换。 1.5 集成终端 终端对开发者来说不可或缺,Visual Studio code 自然也自带终端视窗。 可按快捷键Ctrl+`快速调出终端,也可以 查看——>集成终端 调出。 需要注意的是:如果当前的文件夹的路径名称包含中文,会出现终端打开失败(待验证)。 1.6 安装/卸载扩展(插件) a. 进入扩展视图界面安装/卸载 a1.快捷键:Ctrl+shift+x; a2.查看——>扩展; a3.点左侧边框的扩展图标按钮进入。 在顶部搜索框输入你需要的扩展插件,找到之后在扩展插件后面的选项中点击【安装】即可,需要卸载扩展只需要点【卸载】即可。 扩展下载安装完毕之后需要点击【启用】才生效,有些扩展需要重启编辑器才生效。 b. 如何选择扩展(插件)呢? 其实也不难,扩展的名称一般都暴露了它的功能,基本如下: 1.带snippets 一般是代码提示类扩展; 2.带viewer 一般是代码运行预览类扩展; 3.带support 一般是代码语言支持; 4.带document 一般是参考文档类扩展; 5.带Formatt 一般是代码格式化整理扩展; 当然有的snippets 也自带support功能,并不是以上面的关键词作为唯一标准。 1.7 文件图标主题设置 之前写的有一篇经验,链接附上。 0Visual Studio Code 怎么设置文件图标主题? END 2.VS code用户设置 2.1 用户设置入口 VS code支持用户自定义设置编辑器,包括快加键修改、代码高亮、以及扩展插件配置等,点击文件——>首选项——>用户设置。 编辑器会拆分为两列,一个文件是【默认设置】,一个是【settings.json】,用户设置是空的【settings.json】这个文件(之前没有设置的话),需要自定义的设置项就在settings.json文件里写入json代码即可。 2.2 自定义的设置方法为: 1、在【默认设置】里找到相关的设置json代码段,复制该设置完整的json块,例如:【"editor.fontSize": 14,】。 2、到【settings.json】粘贴。不过记得加上外层(前后)“{}”符号,不然不是完整的json,会出错或者设置无效。 例如: { "editor.fontSize": 20} 完后按Ctrl+s保存关掉窗口,编辑器的文字的大小就变成20了。 需要注意的是,【settings.json】的代码必须符合json格式,且名称(如上面的editor.fontSize)和值对(如上面的20)是【默认设置】里有的或者是扩展中支持的,不然不会有任何作用。 END 3.插件推荐及使用配置 VS code的扩展还是比较丰富的,具体选择方法在前面的步骤1.6已经教大家了,下面介绍几个对基本web前端编辑比较实用的扩展插件(我个人认为)。 3.1 HTNL Snippets 为HTML文档提供代码提示功能,包含HTML5。 3.2 easyless为less文档提供提示,错误警告,以及把less文档编译为css文件。可自定义设置。开发者给出的配置例子: "less.compile": {"compress": true,"sourceMap": true,"out":false} 可以粘贴到用户设置的【默认设置】里,也可以粘贴到用户设置settings.json里。后面的懂json的同学自动忽略:如果settings.json是空的,应该写成: {"less.compile": {"compress": true,"sourceMap": true,"out":false}} 如果之前已有写入json代码,你应该在前面的名称/值对块后面加上“,”(新手容易多加或者少加","符号,个人觉得是这样的)。 ****提示:**** 在写的时候,代码内最好不要加注释。"sourceMap": true, 这个地方最好设置成false ,因为当你实际使用的时候浏览器找不到sourceMap 可能会报错或者浏览器一直去找,还没遇到过(我碰到jQuery.js因为这个报错的),入门的同学还是设置成false 比较好。 3.3 VS color Picker 为css文档和HTML文档提供颜色选择,当输入“#”后会出现颜色选择器浮窗,点击相应颜色之后会插入文档中,默认用16进制表示。若想用其他格式的颜色,如RGB等则推荐扩展:Color Picker (Color Picker缺点是需要配置,安装nodejs,并且添加node到全局环境变量中。而且在插入时需要使用命令调出提色板,有点麻烦) 3.4 live HTML Previewer 为html文档提供预览功能,需要用命令或者快捷键调出,会在编辑器中新增一列,用于运行html文件。 a. 按F1在命令框中输入:Show side preview 新增一列显示html,能边写边看到效果,实时预览。 b. 可以在html文档中右键选择:Open in browser 在系统默认浏览器中打开,该模式下不能提供实时预览,保存时不自动刷新浏览器。 3.5 SVG Viewer 为SVG 文档在编辑器中提供预览。 a. 按F1在命令框中输入:SVG b. 选择SVG Viewer,新增一列显示SVG运行结果。 END 4.VS code 用户代码片段 4.1 用户代码片段 设置入口及示例 用户代码片段 是用来提示代码提示及快捷插入的,那么怎么做呢? 1.文件——>首选项——>用户代码片段 2.选择代码语言 3.按固定格式写json代码 示例格式: "Print to console": {"prefix": "log", "body": ["console.log('$1');","$2"],"description": "Log output to console"} 4.2 片段json示例写法详解 可变区域(这里用XXXX表示)如下:A. "Print to XXXX": { //仅作为标识和目的用途,区别于其他代码块(有多个相同值时会报错),不会插入。 B."prefix": "XXXX", //触发提示的关键字符,也就是输入什么时弹出提示窗。例如:当希望输入a的时候就弹出,这里就写a。在提示窗显示。 C. "body": ["XXXX $1 XXXX"], //在编辑器中插入的代码块,例如当在提示窗中选择a的时候就插入【<a>a</a>】那么这里就写:<a>a</a> D. "description": "XXXX" // 这里是相关描述,比如说明插入的代码块内容、用途、代码结构、参数等,仅在提示窗显示不会插入} E. 上面示例中的$1和$2是初始定位光标位置,用于插入后需要修改的值、参数等。还是上面的例子: "body":["<a>$1</a>"] 那么在插入<a></a>之后,光标的位置将处于<a>和</a>的中间。再如: "body":["<a>$1</a>", "<span>$2GBK</span>"] 那么在插入 <a></a> <span>GBK</span> 之后,光标首先在a标签内,输入完内容之后,光标跳到<span>和GBK中间。输入或者移动光标之后光标恢复正常 4.3 怎么使插入的代码块符合格式化标准? 代码格式化主要就是缩进和换行了。 1.要缩进的地方按下TAB键即可,例如:[" <a>$1</a>"] 2.怎么在"body":[]中插入带双引号的内容?因为注释带有特殊符号尤其是带有双引号("")的内容会导致json报错,解决方法是用反斜杠“\”对特殊符号进行转义。 例如: 那么"body":[]那里应该这样写: 这里在"description": "XXXX"那里同样适用。 总的来说,碰到json报错的字符或者符号就用反斜杠“\”进行转义。当然你要考虑插入之后会不会影响程序文档报错或者出现异常,也就是要先确定插入的代码块是正确的完整的,这是自定义代码块存在的意义 4.4 下面是我写的一段完整的示例(XXXX都匿了):自定义的json{ "Print to authorInfo": { "prefix": "au", "body": [ "-----By Ray-----", "mail:XXXXXXX", "description:$1", " Step 1:", " Step 2:", "<a href=\"XXXX/\">凯玩网</a>"], "description": "author info" 来源于网络,供您参考

保持可爱mmm 2019-12-02 02:20:23 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SQL审核 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 人工智能 阿里云云栖号 云栖号案例 云栖号直播