jsDelivr

【编程高手进阶】七:高并发高性能服务器是如何实现的

↘锁芯ラ 提交于 2021-01-22 01:23:09
当在读这篇文章的时候,你想过没有,服务器是怎么把这篇文章发送给你的呢? 说简单也简单,不就是一个用户请求吗?服务器根据请求从数据库中捞出这篇文章,然后通过网络发回去。 说复杂也复杂,服务器是如何 并行处理成千上万个用户请求呢 ?这里面涉及到哪些技术呢? 这篇文章就来为你解答这个问题。 多进程 历史上最早出现也是最简单的一种并处处理多个请求的方法就是利用 多进程 。 比如在Linux世界中,我们可以使用fork、exec等方法创建多个进程,我们可以在父进程中接收用户的链接请求,然后创建子进程去处理用户请求,就像这样: 这种方法的优点就在于: 编程简单,非常容易理解 由于各个进程的地址空间是相互隔离的,因此一个进程崩溃后并不会影响其它进程 充分利用多核资源 多进程并行处理的优点和明显,但是缺点同样明显: 各个进程地址空间相互隔离,这一优点也会变成缺点,那就是进程间要想通信就会变得比较困难,你需要借助进程间通信(IPC,interprocess communications)机制,想一想你现在知道哪些进程间通信机制,然后让你用代码实现呢?显然,进程间通信编程相对复杂,而且性能也是一大问题 我们知道创建进程开销是比线程要大的,频繁的创建销毁进程无疑会加重系统负担。 幸好,除了进程,我们还有线程。 多线程 不是创建进程开销大吗?不是进程间通信困难吗?这些对于线程来说统统不是问题。 什么

开心!再也不用担心 IntelliJ IDEA 试用过期了

折月煮酒 提交于 2021-01-18 10:39:28
背景 前段时间 Review 团队小伙伴代码,发现当他把鼠标挪到一个方法上时,就自动显示了该方法的所有注释信息,像下图这样,他和我用的 IDE 都是 IntelliJ IDEA。 而我还按古老的方式,每次要点进方法内部去看相关的方法声明,瞬间感觉落伍。问了下小伙伴怎么做到的,他说 IDE 升级到 2020 版本就好了。 我一看自己的版本,2017 年的版本...看来落伍好多年,于是手抖加上心痒,立马更新到了 2020 版本的旗舰版。更新完我就有点后悔了,因为之前版本的激活方式已经不适用新版本了。网上找了几种激活方式,试了下,但并没有奏效,无奈先试用版用着吧... 时间过得好快,今天想起这个事,打开 IDE 看了下 Expiration date,看来试用版下周就要过期了啊。想起下周我搞 IDE 手忙脚乱的样子,我就决定今天把试用过期的问题搞定! 方案 网上找了一圈,热心网友们给的方案都是 jetbrains-agent 插件 的方式,它是通过激活码或 License Server 达到长期使用的目的。但我实操了下,没有效果,把 IDE 卸载干净又实操了下,还是没有效果。 正当我一筹莫展时,我发现 jetbrains-agent 插件 的作者 知了 最近发布了一篇文章,文章提到 jetbrains-agent 项目已经停止,他有了新的思路来延长产品使用时间,那就是重置试用时间。 因为

入门Vue.js要学习哪些知识?

懵懂的女人 提交于 2021-01-07 18:49:43
入门 Vue.js 首先需要从最基础的知识学起,比如 Vue.js 的概念、作用、特点等等。只有对 Vue.js 有一个大致的初步了解,我们才能明白为什么掌握它如此重要。下面一起来具体看看入门 Vue.js.js 要学习哪些知识吧! 1 、 Vue.js 是干什么的? ( 1 ) Vue.js 的产生 在目前这个互联网高速发展的社会,每天都会出现和消失无数的应用,一个网站会因为节日活动或其它原因频繁更改样式,要想持续的发展下去,产品的用户体验是基本中的基本。如果你用手机浏览器打开过一些网页的话,你会发现发现网页和原生 app 之间的一些区别。网页的优势是不用安装,随用随走等;劣势是网页加载的时候会出现空白页面,一些动画效果明显有卡顿的感觉,页面与页面之间跳转因为加载网页数据的原因也会出现短暂空白页面的情况等。 总的来讲,网页与原生 app 做对比,几乎只有不用安装一个优势,其他方面的用户体验明显不如原生 app 。在这种情况下, Vue.js 等一系列 前端 开发框架应运而生。可以这么说, Vue.js 等前端框架的流行是历史的必然,要想成为一名优秀的开发者,入门 学习前端开发 框架是必须的。 ( 2 ) Vue.js 的定义 对于刚开始入门学习的朋友来讲,我们首先要弄清楚 Vue.js 的定义这一基础知识。 Vue.js 的官方文档解释说,它是一套用于构建用户界面的渐进式框架

Vue基础系列(五)——Vue中的指令(中)

我们两清 提交于 2021-01-05 01:26:00
写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习。 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流。 VUE基础系列目录 《VUE基础系列(一)——VUE入坑第一篇》 《VUE基础系列(二)——VUE中的methods属性》 《VUE基础系列(三)——VUE模板中的数据绑定语法》 《VUE基础系列(四)——VUE中的指令(上)》 《VUE基础系列(五)——VUE中的指令(中)》 一.v-model v-model是作用于input/textarea等 表单控件 的双向数据绑定指令,当我们修改表单元素的内容,会自动的更新vue中的数据 #示例  <! DOCTYPE html > < html > < head > < title > vue中的指令(中) </ title > < script type ="text/javascript" src ="https://cdn.jsdelivr.net/npm/vue/dist/vue.js" ></ script > </ head > < body > < div id ='box' > < input v-model ='msg' type ='text' /> < br > 这里是msg的值:{{msg}} </ div > < script type =

Beego 框架学习笔记 02 | Get、Post

孤街浪徒 提交于 2020-12-16 23:27:36
一、Get article.go 里添加代码: package controllers import ( "fmt" "github.com/astaxie/beego" ) type ArticleController struct { // 首字母要大写 beego.Controller } func (c *ArticleController) Get() { c.Ctx.WriteString("新闻列表") // 直接给页面返回数据 } func (c *ArticleController) AddArticle() { c.Ctx.WriteString("增加新闻") } func (c *ArticleController) EditArticle() { //获取 get 传值 id := c.GetString("id") fmt.Printf("值:%v 类型:%T", id, id) beego.Info(id) c.Ctx.WriteString("修改新闻" + id) } 展示如下: 通过 err 判断,获取 get 传值: package controllers import ( "fmt" "github.com/astaxie/beego" ) type ArticleController struct { // 首字母要大写 beego

数据结构-树

爷,独闯天下 提交于 2020-12-16 20:01:43
树 顺序表、单链表和双链表是一种一对一的线性结构,树则是一对多的数据结构。 定义 树(Tree)是n(n >= 0)个结点的有限集。n = 0时称为空树。在任意一颗非空树中: 有且仅有一个特定的称为根的结点 当n > 1时,其余结点可分为m(m > 0)个互不相交的有限集T1、T2、······、Tm,其中每一个集合本身又是一颗树,并且称为根的子树 结点分类 树的结点包括一个数据元素以及若干个指向其子树的分支。结点拥有的子树的数量称为结点的度。 度为0的结点称为叶结点或终端结点,度不为0的结点称为非终端结点或分支结点。 除根结点外,分支结点也称为内部结点 树的度是树内各结点的度的最大值,如上图,树的度为B结点的度为3 结点间关系 结点的子树的根称为该结点的孩子,相应的该结点称为孩子的双亲 同一个双亲的孩子之间互称为兄弟。 结点的祖先是从根到该结点所经分支上的所有结点 以某结点为根的子树中的任一结点都称为该结点的子孙 结点的层次 结点的层次从根开始定义起,根为第一层,根的孩子为第二层以此类推 双亲在同一层的结点互为堂兄弟 树中结点的最大层次称为树的深度或高度,上图树的深度为5 来源: oschina 链接: https://my.oschina.net/u/4892247/blog/4810703

按照笔画顺序写汉字

时光怂恿深爱的人放手 提交于 2020-12-08 01:28:59
https://mp.weixin.qq.com/s/HpNvRSHvibUNGRz9-jRYCQ https://hanziwriter.org/ https://github.com/chanind/hanzi-writer-data https://cdn.jsdelivr.net/npm/hanzi-writer-data@latest/我.json 拿到汉字的svg数据, 然后动态的添加path 目前是比较突兀的直接显示一笔, 后面配合svg动画就能比较顺滑的写字了 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> </style> </head> <body> <script> // https://hanziwriter.org/ const stroke = [ "M 350 571 Q 380 593 449 614 Q 465 615 468 623 Q 471 633 458 643 Q 439 656 396 668 Q 381 674 370 672 Q 363 668

tenserflow.js 环境搭建

拈花ヽ惹草 提交于 2020-11-22 09:46:52
1.安装nodejs http://nodejs.cn/download/ 安装yarn npm install -g yarn 查看版本:yarn --version 2. 一、安装   有两种方法可以在你的项目中引入tensorflow.js。一种是通过script标签引入,另外一种就是通过npm进行安装。 (1)通过script标签,如下: 复制代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tensorflow</title> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.9.0"></script> </head> <body> <script> console.log(tf); </script> </body> </html> 来源: oschina 链接: https://my.oschina.net/u/4349634/blog/4732708

盘点提高国内访问 Github 的速度的 9 种方案

二次信任 提交于 2020-10-30 04:39:27
来源: https://urlify.cn/IFzQRb GitHub 镜像访问 GitHub文件加速 Github 加速下载 加速你的 Github 谷歌浏览器 GitHub 加速插件(推荐) GitHub raw 加速 GitHub + Jsdelivr 通过 Gitee 中转 fork 仓库下载 通过修改 HOSTS 文件进行加速 为什么 github 下载速度这么慢? 如何提高 github 的下载速度? 1. GitHub 镜像访问 这里提供两个最常用的镜像地址: https://github.com.cnpmjs.org https://hub.fastgit.org 也就是说上面的镜像就是一个克隆版的 GitHub,你可以访问上面的镜像网站,网站的内容跟 GitHub 是完整同步的镜像,然后在这个网站里面进行下载克隆等操作。 2. GitHub 文件加速 利用 Cloudflare Workers 对 github release 、archive 以及项目文件进行加速,部署无需服务器且自带CDN. https://gh.api.99988866.xyz https://g.ioiox.com 以上网站为演示站点,如无法打开可以查看开源项目:gh-proxy-GitHub(https://hunsh.net/archives/23/) 文件加速自行部署。 3.

GitHub 的访问速度慢?

*爱你&永不变心* 提交于 2020-10-29 16:51:26
1. GitHub 镜像访问 这里提供两个最常用的镜像地址: https://github.com.cnpmjs.org https://hub.fastgit.org 也就是说上面的镜像就是一个克隆版的 GitHub,你可以访问上面的镜像网站,网站的内容跟 GitHub 是完整同步的镜像,然后在这个网站里面进行下载克隆等操作。 2. GitHub 文件加速 利用 Cloudflare Workers 对 github release 、archive 以及项目文件进行加速,部署无需服务器且自带CDN. https://gh.api.99988866.xyz https://g.ioiox.com 以上网站为演示站点,如无法打开可以查看开源项目:gh-proxy-GitHub(https://hunsh.net/archives/23/) 文件加速自行部署。 3. Github 加速下载 只需要复制当前 GitHub 地址粘贴到输入框中就可以代理加速下载! 地址:http://toolwa.com/github/ 4. 加速你的 Github https://github.zhlh6.cn 输入 Github 仓库地址,使用生成的地址进行 git ssh 等操作 5. 谷歌浏览器 GitHub 加速插件(推荐) 如果小伙伴在线安装不便,可以在公众号后台回复 github加速 。 6