-
理解Go语言Web编程(上)
断断续续学Go语言很久了,一直没有涉及Web编程方面的东西。因为仅是凭兴趣去学习的,时间有限,每次去学,也只是弄个一知半解。不过这两天下定决心把Go语言Web编程弄懂,就查了大量资料,边学边记博客。希望我的这个学习笔记对其他人同样有帮助,由于只是业余半吊子学习,文中必然存在诸多不当之处,恳请读者留言指出,在此先道一声感谢! 本文只是从原理方面对Go的Web编程进行理解,尤其是详细地解析了net/h…- 6
- 0
-
PHP实现四种基本排序算法
许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路。 前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(1,43,54,62,21,66…- 2
- 0
-
使用Rust编写操作系统(位运算)
位运算 位运算 与运算 或运算 兼或 * 异或 非运算 位移运算 位运算的用途 计算2的N次幂 合并位 提取位 大小写转换 BitMask 设置状态 * 清楚状态 * 判断状态 开始干活 使用宏 开始测试 接下来要做什么 在上一篇文章中我们实现了两个基础的宏print和println在本节中我们需要开始编写常用的函数,在编写之前我们需要掌握一些位的运算知识 位运算 我们知道计算机中采用二进制数表示…- 19
- 0
-
必须要注意的 C++ 动态内存资源管理(六)——vector的简单实现
十六.myVector分析 我们知道,vector类将其元素存放在连续的内存中。为了获得可接受的性能,vetor预先分配足够大的内存来保存可能需要的更多元素。vector的每个添加元素的成员函数会检查是否有空间容纳更多的元素。如果有,成员函数会在下一个可用位置构造一个对象。如果没有可用空间,vector就会重新分配空间;它获得新的空间,将已有元素移动到新空间中,释放旧空间,并添加新…- 7
- 0
-
nginx切割日志脚本(python)
因为以前没有做nginx日志分割,有时候想看日志的时候总是发现有十几G的甚至上百G的日志文件,于是就想使用python写个nginx日志分割(当然你也可以使用shell来完成都是很简单) 需求: 1.按照日分割nginx所有日志 2.由于日志不需要随时可以查看,需要做归档(压缩.tar.gz) 3.归档日志需要有过期时间和容量限制(分割日志需要做定期的删除,超过一定时间或者目录大小超过一定容量) …- 15
- 0
-
使用Rust开发编译系统(基本介绍以及建立项目)
建立项目 基本介绍 建立项目 编译系统的过程 下一步要做什么 基本介绍 在本专栏中我们将使用rust编写C语言的编译系统,包括编译器,链接器,汇编器,文章跟之前的风格一样,将项目分为独立的子模块,每篇文章对每个模块或者子功能进行讲述,编写代码之前会讲述所需要的理论知识 建立项目 Rust安装请看这里 建立一个项目需要用到Cargo,Cargo在安装Rust时就会安装 通过Cargo提供的命令很容易…- 31
- 0
-
Windows内存管理机制及C++内存分配实例(一):进程空间
本文背景: 在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制。 本文目的: 对Windows内存管理机制了解清楚,有效的利用C++内存函数管理和使用内存。 本文内容: 本文一共有六节,由于篇幅较多,故按节发表。其他章节请看本人博客的Windows内存管理及C++内存…- 12
- 0
-
apache bench+python脚本压测统计TPS和延迟
一、系统的瓶颈 压测的目的就是跑垮系统,达到系统承受最大值。本次压测考虑的方面: 1、CPU利用率、磁盘IO利用率 2、达到系统瓶颈后,再次增大并发和最大连接数吞吐量和延迟反而会下降 3、压测的机器选择,我是在服务器本机上跑的,这会使得压测程序占用一部分CPU,网络延迟几乎为0;而在笔记本上跑,网络延迟占很大部分。 二、python脚本 关于ab的参数分析在上一篇文章中介绍了,网上关于ab都是基于…- 25
- 0
-
JavaScript继承详解(五)
在本章中,我们将分析John Resig关于JavaScript继承的一个实现 - Simple JavaScript Inheritance。 John Resig作为jQuery的创始人而声名在外。是《Pro JavaScript Techniques》的作者,而且Resig将会在今年秋天推出一本书《JavaScript Secrets》,非常期待。 调用方式 调用方式非常优雅: 注意:代…- 2
- 0
-
Rust : 红楼梦一书中文字符的统计
一、准备工作 1、相关的库 因为红书中大部分是中文字符,标准库中目前还无法直接处理。因此,在进行分析前,在toml文件中的依赖库中,添加一下以下: 1encoding = "0.2" 2 具体可参考以下资料: 1https://github.com/lifthrasiir/rust-encoding 2 2、红楼梦一书的txt文件。直接找度娘。 二、相关代码 1extern c…- 4
- 0
-
初探C++内存池项目 —(二)内存池的实现及原理详解
一.内存池介绍 为了丰富内容,我在把内存池介绍一遍~ 内存池是池化技术中的一种形式。通常我们在编写程序的时候回使用 new delete 这些关键字来向操作系统申请内存,而这样造成的后果就是每次申请内存和释放内存的时候,都需要和操作系统的系统调用打交道,从堆中分配所需的内存。如果这样的操作太过频繁,就会找成大量的内存碎片进而降低内存的分配性能,甚至出现内存分配失败的情况。 而内存池就是为了解决这个…- 26
- 0
-
python 日志分析统计脚本
python 日志分析统计脚本 脚本类似shell的tail功能,用来统计每分钟的4xx、5xx的状态码数量,统计php执行时间小于1秒、1-5秒、5秒以上的数量,和每秒的并发请求。将结果放到/tmp目录下, 也可以用cacti将结果画图。 1#!/usr/bin/env python 2import time, os 3 4#----------------------------- 5log_…- 21
- 0
-
JavaScript继承详解(四)
文章截图 - 更好的排版 在本章中,我们将分析Douglas Crockford关于JavaScript继承的一个实现 - Classical Inheritance in JavaScript。 Crockford是JavaScript开发社区最知名的权威,是JSON、JSLint、JSMin和ADSafe之父,是《JavaScript: The Good Parts》的作者。 现在…- 2
- 0
-
[易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro]
[易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro] 实用知识 宏Macro 我们今天来讲讲Rust中强大的宏Macro。 Rust的宏macro是实现元编程的强大工具。 宏主要作用为: 1.减少重复代码。 2.编写DSL(Domain-specific languages。 3.可变参数接口定义。 在Rust主要分两种宏: 声明式宏declarative macros…- 64
- 0
-
初探C++内存池项目 —(一)链式栈的实现和原理详解
一.项目介绍 本项目是楼主在实验楼中学习的,这里主要分享一下学习心得和总结一些经验~ 在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑,这时候随之而来的有这样一些问题:是否有足够的内存可供分配? 分配失败了怎么办? 如何管理自身的内存使用情况? 等等一系列问题。在一个高可用的软件中,如果我们仅仅单纯的向操作系统去申请内存,当出现内存不足时…- 8
- 0
-
Python脚本日志系统
Python通过logging模块提供日志功能,关于logging模块的使用网络上已经有很多详细的资料,这里要分享的是怎样在实际工程中使用日志功能。 假设要开发一个自动化脚本工具,工程结构如下,Common这个package是框架功能的实现,Scripts目录是我们编写的测试用例脚本(请忽略其他不相关的目录)。 我们对日志功能的需求如下: 1 为了便于日志的查看,每个脚本对应一个日志文件,日志文件…- 15
- 0
-
JavaScript 继承详解(三)
注:本章中的jClass的实现参考了Simple JavaScript Inheritance的做法。 首先让我们来回顾一下第一章中介绍的例子: 1 function Person(name) { 2 3this.name = name; 4 5} 6 7Person.prototype = { 8 9getName: function() { 10 11return this.name; 12 …- 3
- 0
-
[易学易懂系列|rustlang语言|零基础|快速入门|(20)|错误处理]
[易学易懂系列|rustlang语言|零基础|快速入门|(20)|错误处理] 实用知识 错误处理 我们今天来讲讲Rust中的错误处理。 很多语言都有自己的错误处理方式,比如,java是异常处理机制。 Rust有自己独特的错误处理机制。 在Rust有两种错误: recoverable and unrecoverable errors. 翻译成中文就是:可恢复错误和不可恢复错误。 Rust分别用两种方…- 2
- 0
-
图说C++对象模型:对象内存布局详解(下)
5.2.2 菱形继承 菱形继承也称为钻石型继承或重复继承,它指的是基类被某个派生类简单重复继承了多次。这样,派生类对象中拥有多份基类实例(这会带来一些问题)。为了方便叙述,我们不使用上面的代码了,而重新写一个重复继承的继承层次:**** class B { public : int ib; public : B( int i= 1 ) :ib(i){} virtual voi…- 2
- 0
-
Python 3基础教程39-join函数
前面文章介绍了如何创建一个线程,这一篇介绍join()函数。我们先通过下面的步骤来讲为什么要join()函数。 前面文章代码 1import threading 2 3 4def thread1_job(): 5 print('这是一个添加的线程,它的名称是: %s' % threading.current_thread()) 6 7 8def exampleFuc(…- 4
- 0
-
JavaScript继承详解(一)
面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例。 类定义了一类事物公共的行为和方法;而实例则是类的一个具体实现。 我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语…- 1
- 0
-
使用Rust开发操作系统(4级分页内存)
文章目录 基础控制位 分页模式 分页内存的转化过程 4级分页(PML4T) 4级分页模式下各级页表项位功能 * CR3寄存器: * PML4TE * PDPTE * PDE * PTE * 4级分页模式下不同规格的物理页寻址过程 4KB分页寻址 * 2MB分页寻址 * 1GB分页寻址 48位虚拟地址空间划分 4 KiB pages * 2 MiB pages * 1 GiB pages 开始干活 …- 14
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!