• 关于 程序理论是什么 的搜索结果

问题

使用eclipse打的apk包忽大忽小,安装后运行程序失败,为什么?

爵霸 2019-12-01 20:12:08 874 浏览量 回答数 1

回答

最早的计算机就是这么干的。那为什么后来不这样了呢?因为运行的程序多了。你设想一下,比如说你用电脑的时候,你可能一边开了word文档写东西,一边打开网页查资料,一边开着PS处理素材,一边开着图片查看器看素材效果,一边开着翻译软件翻译外文,一边还在插着耳机听音乐,与此同时计算机的后台还在运行着杀毒监控程序、在线升级检测程序、输入法的词库收录程序等等。现在问题就来了,每个程序都需要计算机提供资源,包括CPU的运算资源,内存条的主存容量,硬盘的读写流量,网卡的网络传输流量,主线的内部数据流量等等。对于一个程序而言,它为了保障自己的程序运行流畅,势必就会要求自己分配到的资源越多越好,但是计算机的资源总是有限的,大家都自顾自抢资源的话,要么就是大家一起跑不动,要么就是某几个程序把别的程序的资源都挤占掉。更麻烦的是,由于程序设计者不可能预测到自己的程序会和什么样的别的程序同时在一个电脑中运行,所以很有可能出现某个程序的临时数据恰好和另一个程序关键数据很相似的情况,于是就会发生这个程序破坏了那个程序数据之类的问题。更更麻烦的是,我们的电脑硬件也是由不同的厂商制造的,它们的底层硬件系统也各有不同,无论是消费者还是软件出产方肯定都不希望某个软件在这个型号的电脑上能跑,换一个就跑不了的情况。因此,我们需要操作程序来作为一个协调者。一方面,操作系统提供一系列底层接口和上层标准,“抹平”不同电脑之间的硬件差异,这样只要操作系统相同,硬件能达到软件运行的最低标准,理论上这个软件就能互通。此外,操作系统可以为所有程序分配资源,一切程序要调用计算机资源都需要向操作系统申请权限,这样就能最大程度利用计算机资源同时让各种程序不互相冲突。虽然操作系统本身也会占用一部分计算机资源,但是总体上它让计算机运行更为稳定,同时也减少了软件开发者的工作量,因为程序猿只需要考虑操作系统的标准接口,而不需要考虑硬件系统的底层差异。

独步清客 2019-12-02 00:43:58 0 浏览量 回答数 0

回答

监控1:程序自身把点击数写入到数据库里面(可以写个类周期定时写,但是周期不能超过检查程序的周期),这个用个过滤器什么的都能实现。另外一个程序定时检查网站的点击数在检查周期内是否有变化。监控2:如果是Tomcat6和JDK6以后的版本可以考虑定期用jmap和jstat输出一些JVM的使用状态数据,另外打开JVM的JMX远程访问功能,主要是获取线程池和数据库连接池的使用情况。具体的检测指标可能需要再摸索一下,JMX可以用JConsole连上去看,也可以用Java写程序自己去获取状态值,这个可以找下资料。另外JVM参数最好能把HeapDumpOnOutOfMemoryError打开。监控2这个方案我自己暂时还在理论测试阶段,没有实际投入到运营环境中。

落地花开啦 2019-12-02 02:34:10 0 浏览量 回答数 0

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

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

问题

如何制作Android应用的评论副本?

LiuWH 2020-01-24 11:36:26 0 浏览量 回答数 1

回答

就ISO C标准(语言的正式定义)而言,访问其边界之外的数组具有“ 未定义的行为 ”。其字面意思是: 在使用非便携式或错误程序构造或错误数据时的行为,对此国际标准不施加任何要求 一个非规范性的注释扩展了这一点: 可能的不确定行为范围从完全忽略具有无法预测结果的情况到在翻译或程序执行过程中以环境特征记录的方式表现(带有或不带有诊断消息)到终止翻译或执行(带有发布)诊断消息)。 这就是理论。现实是什么? 在“最佳”情况下,您将访问一些内存,这些内存要么是当前正在运行的程序所拥有的(这可能导致您的程序行为不当),要么不是当前正在运行的程序所拥有的(这可能会导致您的程序崩溃,例如细分错误)。或者,您可以尝试写入程序拥有的内存,但是将其标记为只读;这也可能导致程序崩溃。 假设您的程序在一个试图保护彼此并发运行的进程彼此之间的操作系统下运行。如果您的代码在“裸机”上运行,比如说它是OS内核或嵌入式系统的一部分,则没有这种保护;您行为不当的代码就是应该提供这种保护的内容。在这种情况下,损坏的可能性会更大,包括在某些情况下对硬件(或附近的东西或人)的物理损坏。 即使在受保护的OS环境中,保护也不总是100%。例如,存在一些操作系统错误,这些错误使无特权的程序可以获取根(管理)访问权限。即使具有普通用户特权,出现故障的程序也可能消耗过多的资源(CPU,内存,磁盘),从而可能使整个系统瘫痪。许多恶意软件(病毒等)利用缓冲区溢出来获得对系统的未授权访问。 (一个历史示例:我听说过,在一些带有核心内存的旧系统中,在紧密循环中重复访问单个内存位置可能确实导致该内存块融化。其他可能性包括破坏CRT显示器和移动读取的内容。 /写入磁盘驱动器磁头,使其具有驱动器柜的谐波频率,从而使其滑过桌子并掉落在地板上。) 而且总是有天网需要担心。 底线是:如果您可以编写一个程序来故意做一些不好的事情,那么从理论上讲,一个有缺陷的程序至少有可能偶然地做同样的事情。 在实践中,这是非常不可能的,你与MacOS X系统上运行错误的程序会做什么比暴跌更加严重。但是,不可能完全防止错误的代码做真正的坏事。 问题来源于stack overflow

保持可爱mmm 2020-01-16 15:55:44 0 浏览量 回答数 0

问题

使用非关系数据库能否提高开发效率上?

落地花开啦 2019-12-01 19:49:32 1274 浏览量 回答数 1

回答

内核空间和用户空间的分离,是不是主要就是从安全角度考虑的?是,但是也是简化编程模型,提高系统可靠性,方便系统在运行的时候动态加载模块。从用户空间影响内核空间,都有哪些方式?你说的基本差不多了。攻击内核有哪些方式?这个一般通过漏洞提升权限,注入驱动程序等等拿到root权限,是不是就是无敌了,想在内核里干什么就干什么 理论上是这样,但是除非你对特定的某台机器了如指掌,否则你还是无从下手。

小旋风柴进 2019-12-02 02:33:14 0 浏览量 回答数 0

回答

Re主机运行时生成快照是什么样的 快照只是对磁盘在某个时间点的数据的一个拷贝。当时系统运行的程序,状态是在内存里的,所以不会被记录到快照中。 但有一种情况,例如你使用了windows的休眠,windows会把内存的状态拷贝到磁盘上。做完休眠,再去打快照的话,理论上你从这个快照做成镜像再启动新的服务器,就可以直接运行当时的程序了。

东风破 2019-12-02 03:03:03 0 浏览量 回答数 0

回答

阿里云机子都有使用服务限制和相关规定说明介绍的,我不了解"江湖程序"具体是什么,但听起来像是游戏类东西。理论上正规的游戏类还好,但主机商最怕的就是你的东西是擦边球的内容。因此,建议正式购买之前提前问一下人工客服,了解清楚再下单比较好。祝顺利!

来一点幽默 2019-12-02 01:36:44 0 浏览量 回答数 0

问题

为什么基于关系集的查询比游标更好?

保持可爱mmm 2019-12-01 21:58:16 30 浏览量 回答数 1

回答

当使用TSQL或PLSQL之类的代码编写数据库查询时,我们通常可以选择使用游标遍历行来完成任务,或者设计一条SQL语句一次完成全部工作。 同样,我们可以选择简单地将一大组数据拉回到我们的应用程序中,然后使用C#或Java或PHP或其他东西逐行处理它。 为什么使用基于集合的查询更好?这种选择背后的理论是什么?什么是基于游标的解决方案及其等效关系的良好示例?

保持可爱mmm 2019-12-02 03:15:44 0 浏览量 回答数 0

问题

mysql数据库的一个并发问题

蛮大人123 2019-12-01 19:53:19 1234 浏览量 回答数 1

回答

Go 语言写前端 Web 应用借助的是 WebAssembly 。 那什么是 WebAssembly 呢?它也叫 wasm ,是由 Google、Microsoft、Mozilla、Apple 等几家大公司合作发起的 WebAssembly 是一种新的字节码格式,主流浏览器都已经支持 WebAssembly。和 JS 需要解释执行不同,WebAssembly 字节码和底层机器码很相似可快速装载运行,因此性能相对于 JS 解释执行大大提升。也就是说 WebAssembly 并不是一门编程语言,而是一份字节码标准,需要用高级编程语言编译出字节码放到 WebAssembly 虚拟机中才能运行 。所以,理论上讲只要能编译成 WebAssembly 字节码的高级语言都可以写 Web 应用程序。 而 Go 的前端框架叫:Vugo 。它是一个 Go 语言开发库,可以很容易地使用 Go 语言编写 Web 用户界面。 Vugu: 是一个用于 Go+WebAssembly 的现代 UI 库,受 Vue 和 React 等工具的启发,Vugu 是一个完全用 Go 编写的小型库,可以在现代浏览器中使用 WebAssembly 运行。 官网示例,go 写前端大概是这样的: 创建一个在浏览器中运行的基本工作 Vugu 应用程序,只需要三个小文件即可启动。一个是创建 go.mod 文件,用来指定 Go 模块名称,再创建一个 Vugu 组件文件 ,类似于 Vue 的 .vue 文件一样。最后,创建一个开发服务器代码文件,是一个为你的程序提供服务的服务器。 然后运行一下服务器文件,就可以了,Web 应用程序就跑起来了。 对于这次 Go 语言的强势入侵,作为程序员的你怎么看?但是历史的经验告诉我们,往往什么都想干的,往往都做不好。不知道这次 Go 能否在前端占据一席之地呢?欢迎大家留言,讨论,交流。 我本来打算学 Go 做后台呢,但是还没起步,Go 又打开了前端的大门。当程序员真的是累啊!

有只黑白猫 2020-01-07 17:26:58 0 浏览量 回答数 0

回答

冯.诺依曼 冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。 说到计算机的发展,就不能不提到德国科学家冯诺依曼。从20世纪初,物理学和电子学科学家们就在争论制造可以进行数值计算的机器应该采用什么样的结构。人们被十进制这个人类习惯的计数方法所困扰。所以,那时以研制模拟计算机的呼声更为响亮和有力。20世纪30年代中期,德国科学家冯诺依曼大胆的提出,抛弃十进制,采用二进制作为数字计算机的数制基础。同时,他还说预先编制计算程序,然后由计算机来按照人们事前制定的计算顺序来执行数值计算工作。

一键天涯 2019-12-02 01:28:23 0 浏览量 回答数 0

问题

谁回我 关于HTML、PHP、建站的一些基本问题

杨冬芳 2019-12-01 19:58:32 1221 浏览量 回答数 1

回答

算法怎么学。DS中所涉及的算法仅仅是基础算法而已,真正难和有含量的算法在算法导论这本书中,这里面不涉及任何数据结构,就是单纯将算法,而且是所有算法分类全部展开讲,学这本书后,你才发现,数据结构中涉及的什么背包,动态规划算法了,仅仅是算法导论里每一章的最基础的东西。举个例子,DS里面的搜索算法,只涉及DFS和BFS,也就是深度优先和宽度优先。。。但是算法导论里会教你双向BFS,A*等智能搜索算法。PS:还是那句话,算法是要通过理论和实践结合才能掌握的,也就是通过编程,切实做题目并且用程序实现,只看程序是永永远远不可能掌握的,看了你就忘,看懂了你也不会用。所以说计算机这个专业还是对本专业比较公平,对其他专业不太公平。当然计算机本专业也有好多人平时不喜欢编程上机,天天混日子的。

寒凝雪 2019-12-02 01:20:24 0 浏览量 回答数 0

问题

晒一下自写的webshell检查程序

云代维 2019-12-01 21:00:04 5153 浏览量 回答数 4

回答

把这2个证书 import 到 JVM默认的 keystore中 即cacert中{JAVA_HOME}/jre/lib/security/cacerts. 理论上来说java 虚拟机会默认加载这个cacert的只要运行在这个jvm的应用程序 都会在这个key store 里面寻找可trust的证书,也就不用再代码里显示的声明 加载什么什么证书了。当然了 如果不放心 可以加上System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" ); 注: 这个 cacert的默认密码是changeit

落地花开啦 2019-12-02 02:31:29 0 浏览量 回答数 0

回答

把这2个证书 import 到 JVM默认的 keystore中 即cacert中{JAVA_HOME}/jre/lib/security/cacerts. 理论上来说java 虚拟机会默认加载这个cacert的只要运行在这个jvm的应用程序 都会在这个key store 里面寻找可trust的证书,也就不用再代码里显示的声明 加载什么什么证书了。当然了 如果不放心 可以加上System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" );注: 这个 cacert的默认密码是changeit

一生有你llx 2019-12-02 02:31:29 0 浏览量 回答数 0

回答

把这2个证书 import 到 JVM默认的 keystore中 即cacert中{JAVA_HOME}/jre/lib/security/cacerts. 理论上来说java 虚拟机会默认加载这个cacert的只要运行在这个jvm的应用程序 都会在这个key store 里面寻找可trust的证书,也就不用再代码里显示的声明 加载什么什么证书了。当然了 如果不放心 可以加上System.setProperty("javax.net.ssl.trustStore"," C:/Program Files/Java/jdk1.6.0_20/jre/lib/security/cacerts" ); 注: 这个 cacert的默认密码是changeit

nothingfinal 2019-12-02 02:31:29 0 浏览量 回答数 0

回答

我不知道如果我建议你不要看小甲鱼的东西你是不是会说我答非所问。 想学数据结构和算法就不要看视频。你应该听很多人说过,学程序设计不要看视频,看视频你的思维不会很活跃,你对问题的思考严重不足,你会发现看多少遍做题目仍然不会。更何况数据结构和算法不是记忆的东西,它就是需要思考。所以如果你想通过看视频学习数据结构和算法,还是再考虑一下吧。 其次,我不知道为什么小甲鱼的视频会很火,我查过这个小甲鱼,他什么几乎都有涉及到,我可是第一次遇见有这样的“大神”。然而他的课程没有自己的思考,没有多年程序设计的侵染,都是很干巴巴的理论。但是为了突出原创,他把别人本已很精炼的东西非要经过修改。这一改可不得了,功力不够会出现很多错误,但是新手往往发现不了。这对新手是很不利的。 当然,这种现象不光是小甲鱼,很多很多浮躁的想赚钱的人都会通过面向新手的课程来给自己攒人气赚钱。新手判断力差不知道哪个好哪个不好,容易着了道。 如果你真心学习数据结构和算法,买一本《数据结构与算法分析-C语言版》潜心学下去吧。不要想轻松学会,那是不可能的。如果真心想学,就不要骗自己,老老实实买本书啃吧。

晚来风急 2019-12-02 01:23:43 0 浏览量 回答数 0

问题

终于开始没日没夜加班了,可是笑不出来了。。。啊哈哈哈哈哈哈 400 请求报错 

kun坤 2020-05-30 14:23:06 0 浏览量 回答数 1

回答

你得到SecurityException: Permission denied (missing INTERNET permission?),明确表示不允许你进行联网。这是一个不争的事实。但这怎么可能发生呢?通常是因为在你的AndroidManifest.xml文件中缺少 ,或者,由于互联网许可是在安装时授予的,而不是在运行时,由于长期存在,Android框架中漏掉了导致应用程序成功安装的错误,但没有预期的权限授予。 我的Manifest是正确的,那么这怎么会发生呢? 理论上uses-permission在Manifest中,完美地满足了需求,从开发人员的角度来看,能够进行联网所需做的就是全部。此外,由于在安装过程中向用户显示了权限,因此你的应用程序在用户设备上安装的事实意味着授予你所要求的权限(否则安装将被取消),因此假设如果你的代码被执行,那么所有请求的权限都被授予是有效的。一旦获得批准,用户除了完全卸载应用程序之外,还不能取消许可,因为标准的Android框架(来自AOSP)目前没有这样的功能。 你可以考虑使用setDefaultUncoghtExceptionHandler()为了在将来捕捉到这样的意外异常,只需向用户显示你的应用程序需要什么样的权限,而不是仅仅是崩溃。 注记 请注意android.permission.INTERNET并不是在清单中声明的唯一与网络相关的权限。有INTERNET授予的权限只允许应用程序打开网络套接字(这基本上是进行任何网络数据传输的基本要求)。但是,如果你的网络堆栈/库也想获得有关网络的信息,那么你也需要android.permission.ACCESS_NETWORK_STATE在你的报表中。 增编(2015-07-16) 请注意,android 6(又名marshmlow)引入了全新的权限管理机制,名为运行时权限。它允许用户更多地控制所授予的权限(还允许有选择的授予),或者让用户撤销已经授予的权限,以便删除应用程序。 然而,这些变化并不影响互联网或接入网络状态权限,这些权限被认为是“正常”权限。用户不需要显式授予这些权限。

游客bnlxddh3fwntw 2020-04-23 19:20:24 0 浏览量 回答数 0

问题

Android工程文件下assets文件夹与res文件夹的区别:报错

kun坤 2020-06-07 16:51:18 0 浏览量 回答数 1

问题

比赛tair的模式,还有jstorm任务结束问题

郭泽晖 2019-12-01 21:43:26 3657 浏览量 回答数 2

回答

简介 如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:“Node 究竟是什么东西?”尽管不是针对所有人的,但 Node 可能是某些人的正确选择。 为试图解释什么是 Node.js,本文探究了它能解决的问题,它如何工作,如何运行一个简单应用程序,最后,Node 何时是和何时不是一个好的解决方案。本文不涉及如何编写一个复杂的 Node 应用程序,也不是一份全面的 Node 教程。阅读本文应该有助于您决定是否应该学习 Node,以便将其用于您的业务。 Node 旨在解决什么问题? Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。当前的服务器程序有什么问题?我们来做个数学题。在 Java™ 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户。随着您的客户端基础的增长,您希望您的 web 应用程序支持更多用户,这样,您必须添加更多服务器。当然,这会增加业务成本,尤其是服务器成本、运输成本和人工成本。除这些成本上升外,还有一个技术问题:用户可能针对每个请求使用不同的服务器,因此,任何共享资源都必须在所有服务器之间共享。例如,在 Java 中,静态变量和缓存需要在每个服务器上的 JVMs 之间共享。这就是整个 web 应用程序架构中的瓶颈:一个服务器能够处理的并发连接的最大数量。 Node 解决这个问题的方法是:更改连接连接到服务器的方式。每个连接都创建一个进程,该进程不需要配套内存块,而不是为每个连接生成一个新的 OS 线程(并向其分配一些配套内存)。Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接。事实上,Node 通过将整个系统中的瓶颈从最大连接数量更改到单个系统的流量来改变服务器面貌。 现在您有了一个能处理数万条并发连接的程序,那么您能通过 Node 实际构建什么呢?如果您有一个 web 应用程序需要处理这么多连接,那将是一件很 “恐怖” 的事!那是一种 “如果您有这个问题,那么它根本不是问题” 的问题。在回答上面的问题之前,我们先看看 Node 如何工作以及它被设计的如何运行。 Node 肯定不是什么 没错,Node 是一个服务器程序。但是,它肯定不 像 Apache 或 Tomcat。那些服务器是独立服务器产品,可以立即安装并部署应用程序。通过这些产品,您可以在一分钟内启动并运行一个服务器。Node 肯定不是这种产品。Apache 能添加一个 PHP 模块来允许开发人员创建动态 web 页,使用 Tomcat 的程序员能部署 JSPs 来创建动态 web 页。Node 肯定不是这种类型。 在 Node 的早期阶段(当前是 version 0.4.6),它还不是一个 “运行就绪” 的服务器程序,您还不能安装它,向其中放置文件,拥有一个功能齐全的 web 服务器。即使是要实现 web 服务器在安装完成后启动并运行这个基本功能,也还需要做大量工作。 Node 如何工作 Node 本身运行 V8 JavaScript。等等,服务器上的 JavaScript?没错,您没有看错。服务器端 JavaScript 是一个相对较新的概念,这个概念是大约两年前在 developerWorks 上讨论 Aptana Jaxer 产品时提到的(参见 参考资料)。尽管 Jaxer 一直没有真正流行,但这个理念本身并不是遥不可及的 — 为何不能在服务器上使用客户机上使用的编程语言? 什么使 V8?V8 JavaScript 引擎是 Google 用于他们的 Chrome 浏览器的底层 JavaScript 引擎。很少有人考虑 JavaScript 在客户机上实际做了些什么?实际上,JavaScript 引擎负责解释并执行代码。使用 V8,Google 创建了一个以 C++ 编写的超快解释器,该解释器拥有另一个独特特征;您可以下载该引擎并将其嵌入任何 应用程序。它不仅限于在一个浏览器中运行。因此,Node 实际上使用 Google 编写的 V8 JavaScript 引擎并将其重建为在服务器上使用。太完美了!既然已经有一个不错的解决方案可用,为何还要创建一种新语言呢? 事件驱动编程 许多程序员接受的教育使他们认为,面向对象编程是完美的编程设计,而对其他编程方法不屑一顾。Node 使用一个所谓的事件驱动编程模型。 清单 1. 客户端上使用 jQuery 的事件驱动编程 复制代码 代码如下: // jQuery code on the client-side showing how Event-Driven programming works // When a button is pressed, an Event occurs - deal with it // directly right here in an anonymous function, where all the // necessary variables are present and can be referenced directly $("#myButton").click(function(){ if ($("#myTextField").val() != $(this).val()) alert("Field must match button text"); }); 实际上,服务器端和客户端没有任何区别。没错,这没有按钮点击操作,也没有向文本字段键入的操作,但在一个更高的层面上,事件正在 发生。一个连接被建立 — 事件!数据通过连接接收 — 事件!数据通过连接停止 — 事件! 为什么这种设置类型对 Node 很理想?JavaScript 是一种很棒的事件驱动编程语言,因为它允许匿名函数和闭包,更重要的是,任何写过代码的人都熟悉它的语法。事件发生时调用的回调函数可以在捕获事件处编写。这样,代码容易编写和维护,没有复杂的面向对象框架,没有接口,没有在上面架构任何内容的潜能。只需监听事件,编写一个回调函数,然后,事件驱动编程将照管好一切! 示例 Node 应用程序 最后,我们来看一些代码!让我们将讨论过的所有内容综合起来,创建我们的第一个 Node 应用程序。由于我们已经知道,Node 对于处理高流量应用程序很理想,我们就来创建一个非常简单的 web 应用程序 — 一个为实现最大速度而构建的应用程序。下面是 “老板” 交代的关于我们的样例应用程序的具体要求:创建一个随机数字生成器 RESTful API。这个应用程序应该接受一个输入:一个名为 “number” 的参数。然后,应用程序返回一个介于 0 和该参数之间的随机数字,并将生成的数字返回调用者。由于 “老板” 希望它成为一个广泛流行的应用程序,因此它应该能处理 50,000 个并发用户。我们来看看代码: 清单 2. Node 随机数字生成器 复制代码 代码如下: // these modules need to be imported in order to use them. // Node has several modules. They are like any #include // or import statement in other languages var http = require("http"); var url = require("url"); // The most important line in any Node file. This function // does the actual process of creating the server. Technically, // Node tells the underlying operating system that whenever a // connection is made, this particular callback function should be // executed. Since we're creating a web service with REST API, // we want an HTTP server, which requires the http variable // we created in the lines above. // Finally, you can see that the callback method receives a 'request' // and 'response' object automatically. This should be familiar // to any PHP or Java programmer. http.createServer(function(request, response) { // The response needs to handle all the headers, and the return codes // These types of things are handled automatically in server programs // like Apache and Tomcat, but Node requires everything to be done yourself response.writeHead(200, {"Content-Type": "text/plain"}); // Here is some unique-looking code. This is how Node retrives // parameters passed in from client requests. The url module // handles all these functions. The parse function // deconstructs the URL, and places the query key-values in the // query object. We can find the value for the "number" key // by referencing it directly - the beauty of JavaScript. var params = url.parse(request.url, true).query; var input = params.number; // These are the generic JavaScript methods that will create // our random number that gets passed back to the caller var numInput = new Number(input); var numOutput = new Number(Math.random() * numInput).toFixed(0); // Write the random number to response response.write(numOutput); // Node requires us to explicitly end this connection. This is because // Node allows you to keep a connection open and pass data back and forth, // though that advanced topic isn't discussed in this article. response.end(); // When we create the server, we have to explicitly connect the HTTP server to // a port. Standard HTTP port is 80, so we'll connect it to that one. }).listen(80); // Output a String to the console once the server starts up, letting us know everything // starts up correctly console.log("Random Number Generator Running..."); 将上面的代码放到一个名为 “random.js” 的文件中。现在,要启动这个应用程序并运行它(进而创建 HTTP 服务器并监听端口 80 上的连接),只需在您的命令提示中输入以下命令:% node random.js。下面是服务器已经启动并运行时它看起来的样子: 复制代码 代码如下: root@ubuntu:/home/moila/ws/mike# node random.js Random Number Generator Running... 访问应用程序 应用程序已经启动并运行。Node 正在监听任何连接,我们来测试一下。由于我们创建了一个简单的 RESTful API,我们可以使用我们的 web 浏览器来访问这个应用程序。键入以下地址(确保您完成了上面的步骤):localhost/?number=27。 您的浏览器窗口将更改到一个介于 0 到 27 之间的随机数字。单击浏览器上的 “重新载入” 按钮,将得到另一个随机数字。就是这样,这就是您的第一个 Node 应用程序! Node 对什么有好处? 到此为止,应该能够回答 “Node 是什么” 这个问题了,但您可能还不清楚什么时候应该使用它。这是一个需要提出的重要问题,因为 Node 对有一些东西有好处,但相反,对另一些东西而言,目前 Node 可能不是一个好的解决方案。您需要小心决定何时使用 Node,因为在错误的情况下使用它可能会导致一个多余编码的 LOT。 它对什么有好处? 正如您此前所看到的,Node 非常适合以下情况:您预计可能有很高的流量,而在响应客户端之前服务器端逻辑和处理所需不一定是巨大的。Node 表现出众的典型示例包括: 1.RESTful API 提供 RESTful API 的 web 服务接收几个参数,解析它们,组合一个响应,并返回一个响应(通常是较少的文本)给用户。这是适合 Node 的理想情况,因为您可以构建它来处理数万条连接。它还不需要大量逻辑;它只是从一个数据库查找一些值并组合一个响应。由于响应是少量文本,入站请求时少量文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的 API 需求。 2.Twitter 队列 想像一下像 Twitter 这样的公司,它必须接收 tweets 并将其写入一个数据库。实际上,每秒几乎有数千条 tweets 达到,数据库不可能及时处理高峰时段需要的写入数量。Node 成为这个问题的解决方案的重要一环。如您所见,Node 能处理数万条入站 tweets。它能迅速轻松地将它们写入一个内存排队机制(例如 memcached),另一个单独进程可以从那里将它们写入数据库。Node 在这里的角色是迅速收集 tweet 并将这个信息传递给另一个负责写入的进程。想象一下另一种设计 — 一个常规 PHP 服务器自己试图处理对数据库的写入 — 每个 tweet 将在写入数据库时导致一个短暂的延迟,这是因为数据库调用正在阻塞通道。由于数据库延迟,一台这样设计的机器每秒可能只能处理 2000 条入站 tweets。每秒 100 万条 tweets 需要 500 个服务器。相反,Node 能处理每个连接而不会阻塞通道,从而能捕获尽可能多的 tweets。一个能处理 50,000 条 tweets 的 Node 机器只需要 20 个服务器。 3.映像文件服务器 一个拥有大型分布式网站的公司(比如 Facebook 或 Flickr)可能会决定将所有机器只用于服务映像。Node 将是这个问题的一个不错的解决方案,因为该公司能使用它编写一个简单的文件检索器,然后处理数万条连接。Node 将查找映像文件,返回文件或一个 404 错误,然后什么也不用做。这种设置将允许这类分布式网站减少它们服务映像、.js 和 .css 文件等静态文件所需的服务器数量。 它对什么有坏处? 当然,在某些情况下,Node 并非理想选择。下面是 Node 不擅长的领域: 1.动态创建的页 目前,Node 没有提供一种默认方法来创建动态页。例如,使用 JavaServer Pages (JSP) 技术时,可以创建一个在这样的 JSP 代码段中包含循环的 index.jsp 页。Node 不支持这类动态的、HTML 驱动的页面。同样,Node 不太适合作为 Apache 和 Tomcat 这样的网页服务器。因此,如果您想在 Node 中提供这样一个服务器端解决方案,必须自己编写整个解决方案。PHP 程序员不想在每次部署 web 应用程序时都编写一个针对 Apache 的 PHP 转换器,当目前为止,这正是 Node 要求您做的。 2. 关系数据库重型应用程序 Node 的目的是快速、异步和非阻塞。数据库并不一定分享这些目标。它们是同步和阻塞的,因为读写时对数据库的调用在结果生成之前将一直阻塞通道。因此,一个每个请求都需要大量数据库调用、大量读取、大量写入的 web 应用程序非常不适合 Node,这是因为关系数据库本身就能抵销 Node 的众多优势。(新的 NoSQL 数据库更适合 Node,不过那完全是另一个主题了。) 结束语 问题是 “什么是 Node.js?” 应该已经得到解答。阅读本文之后,您应该能通过几个清晰简洁的句子回答这个问题。如果这样,那么您已经走到了许多编码员和程序员的前面。我和许多人都谈论过 Node,但它们对 Node 究竟是什么一直很迷惑。可以理解,他们具有的是 Apache 的思维方式 — 服务器是一个应用程序,将 HTML 文件放入其中,一切就会正常运转。而 Node 是目的驱动的。它是一个软件程序,使用 JavaScript 来允许程序员轻松快速地创建快速、可伸缩的 web 服务器。Apache 是运行就绪的,而 Node 是编码就绪的。 Node 完成了它提供高度可伸缩服务器的目标。它并不分配一个 “每个连接一个线程” 模型,而是使用一个 “每个连接一个流程” 模型,只创建每个连接需要的内存。它使用 Google 的一个非常快速的 JavaScript 引擎:V8 引擎。它使用一个事件驱动设计来保持代码最小且易于阅读。所有这些因素促成了 Node 的理想目标 — 编写一个高度可伸缩的解决方案变得比较容易。 与理解 Node 是 什么同样重要的是,理解它不是 什么。Node 并不是 Apache 的一个替代品,后者旨在使 PHP web 应用程序更容易伸缩。事实确实如此。在 Node 的这个初始阶段,大量程序员使用它的可能性不大,但在它能发挥作用的场景中,它的表现非常好。 将来应该期望从 Node 得到什么呢?这也许是本文引出的最重要的问题。既然您知道了它现在的作用,您应该会想知道它下一步将做什么。在接下来的一年中,我期待着 Node 提供与现有的第三方支持库更好地集成。现在,许多第三方程序员已经研发了用于 Node 的插件,包括添加文件服务器支持和 MySQL 支持。希望 Node 开始将它们集成到其核心功能中。最后,我还希望 Node 支持某种动态页面模块,这样,您就可以在 HTML 文件中执行在 PHP 和 JSP(也许是一个 NSP,一个 Node 服务器页)中所做的操作。最后,希望有一天会出现一个 “部署就绪” 的 Node 服务器,可以下载和安装,只需将您的 HTML 文件放到其中,就像使用 Apache 或 Tomcat 那样。Node 现在还处于初始阶段,但它发展得很快,可能不久就会出现在您的视野中。 答案来源于网络

养狐狸的猫 2019-12-02 02:17:03 0 浏览量 回答数 0

回答

http://www.fuchaoqun.com/2009/04/efficient-pagination-using-mysql######既然这样为啥不横向分表呢,把基础信息和附带信息分开,这样也减少了单表的容量,同时也加快了查询基础信息数据的速度,至于附加信息可以通过异步方式查询一次,微博头像信息就是这样实现的######@光头程序员 嗯######回复 @光头程序员 : 也就是水平分区和垂直分区。水平分区是按照一个字段,比如说按照时间分成几个区;垂直分表是把一个表分成两部分,比如说一个基本信息表有很多大字段的备注,这些备注不常用,我们就可以把它分到另一个表中######回复 @钟晓骏 : 你是来回答问题的吗######懂的好多,真怀疑你是不是女女了。。。还没见过哪个女的程序员像你这么厉害的~或许是我还没碰到###### 百万级的数据?有排序? 有一种思路是这样的:将主键以及排序字段冗余成一张新表(静态表),然后每次列表的时候都是通过这张表分页显示,然后从主表中ajax异步加载当前页所有ID的信息(指定主键查询) 这样不用分表什么的,最大限度减少工作量,而且主表就不用负担这方面的排序列表消耗了,索引空间也可以节约下来 不知道这样可不可以 ######我也是这么看的###### 引用来自“小小程序员”的答案 百万级的数据?有排序? 有一种思路是这样的:将主键以及排序字段冗余成一张新表(静态表),然后每次列表的时候都是通过这张表分页显示,然后从主表中ajax异步加载当前页所有ID的信息(指定主键查询) 这样不用分表什么的,最大限度减少工作量,而且主表就不用负担这方面的排序列表消耗了,索引空间也可以节约下来 不知道这样可不可以 普通数据库对付百万级别的数据还不至于要如此折腾,另外如果索引都正确建立的话,另建一张信表是没有太大意义的。(走的都是索引查询) ######难不成楼主要一次性把所有数据全部加载展示出来?###### 引用来自“huan”的答案 引用来自“小小程序员”的答案 百万级的数据?有排序? 有一种思路是这样的:将主键以及排序字段冗余成一张新表(静态表),然后每次列表的时候都是通过这张表分页显示,然后从主表中ajax异步加载当前页所有ID的信息(指定主键查询) 这样不用分表什么的,最大限度减少工作量,而且主表就不用负担这方面的排序列表消耗了,索引空间也可以节约下来 不知道这样可不可以 普通数据库对付百万级别的数据还不至于要如此折腾,另外如果索引都正确建立的话,另建一张信表是没有太大意义的。(走的都是索引查询) 理论上是这样,但是查询的速度不仅仅是索引,还有内存、磁盘等因素。 我的意思是,这样的话可以大大减少主表所使用的I/O以及碎片(明显,这些都会制约查询) 而且查询表如何是静态表(比动态表快四倍?)的话,应该会好很多吧 ######为什么不分页?###### 引用来自“小小程序员”的答案 引用来自“huan”的答案 引用来自“小小程序员”的答案 百万级的数据?有排序? 有一种思路是这样的:将主键以及排序字段冗余成一张新表(静态表),然后每次列表的时候都是通过这张表分页显示,然后从主表中ajax异步加载当前页所有ID的信息(指定主键查询) 这样不用分表什么的,最大限度减少工作量,而且主表就不用负担这方面的排序列表消耗了,索引空间也可以节约下来 不知道这样可不可以 普通数据库对付百万级别的数据还不至于要如此折腾,另外如果索引都正确建立的话,另建一张信表是没有太大意义的。(走的都是索引查询) 理论上是这样,但是查询的速度不仅仅是索引,还有内存、磁盘等因素。 我的意思是,这样的话可以大大减少主表所使用的I/O以及碎片(明显,这些都会制约查询) 而且查询表如何是静态表(比动态表快四倍?)的话,应该会好很多吧 优化时尽量优先考虑通用的技术方式,最后再考虑特定软件的专有方式。

kun坤 2020-06-07 21:56:45 0 浏览量 回答数 0

问题

java 成员变量无缘无故的变成null,怎么办??报错

爱吃鱼的程序员 2020-06-14 15:45:07 0 浏览量 回答数 1

问题

阿里云香港ECS主机流入带宽是否有上限

ap3223b6x 2019-12-01 22:05:35 11512 浏览量 回答数 5

回答

难道 阿里云 主机没有任何限制吗?——有限制,具体见下 如有没有流量限制??——根据带宽,默认5M带宽理论峰值640KB/s,你可以算一下一个月最大带宽开销是多少 并发连接数 限制??——与你购买的云主机性能(内存,带宽)以及你的环境配置都有关系,配置好的话连接数就高了 还有 阿里云主机 买完就是全部配置好的吗?和虚拟主机一样?——不是,环境需要自己配置,除非你在购买的时候勾选了安装phpwind8.5 买来就可以 直接上传自己的网站程序 绑定域名 就运行了??——见上条,域名绑定方法随各系统不同而不同 还是说所有的东西都要自己配置啊??——还是见上条 还有你们的 空间 对网站有什么限制啊?如什么样的网站可以放什么样的网站不能放??——同上,都在国内了,这个问题多说多问都无益 API采集 的 淘宝客 程序 支持吗??——应该是支持的吧,划给你的硬件资源是独享的 这些都没有说清楚啊。 买完了不让用 那不白忙活了。。。 怎么连个 在线客服都没有啊??

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