自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (6)
  • 收藏
  • 关注

原创 高级语言不高级之一

高级语言不高级之一

2024-07-16 23:18:52 93

原创 Linux内存管理总结

当Linux要运行一个程序的时候,进程通过虚拟内存读取指令。但是在运行指令之前,通过页表的映射,将虚拟地址转化为物理地址来获取实际的指令或数据来运行任务。在通常情况下,虚拟内存比物理内存要大。在Linux使用虚拟内存来分配程序运行所需要的物理内存。在Linux系统中,有两种内存:物理内存,虚拟内存。:虚拟地址到内存物理地址的映射表。:在机器中实际存在的内存。

2023-08-28 22:07:13 89

原创 Linux内存管理之OOM killer

物理内存是一种很稀缺的资源,它并不是无限的,也不是每次都能回收足够当前使用的空间。一常比较常见的场景是:物理内存即将耗尽,并且无法回收足够的空间来满足后续的任务。在这个时候,为了尽量保证系统的其它部份可用,系统调将调 用OOM killer.首先OOK killer会选择一个任务(一般会选择占用内存比较多的),然后将任务终止,期望任务 退出后会释放足够多的内存,以满足系统正常操作的需要。

2023-08-26 09:23:44 83

原创 Linux内存管理之内存碎片

随着系统持续的运行,内存不停的被分配使用、回收,再分配、再回收…,在这个过程中,内存往往会变理碎片化,不再连续。尽管通过虚拟内存可以将分散的物理页面以连续的方式对外展现(类似外观模式),但是有的时候需要分配比较大的,并且连续的物理内存。例如,当设备驱动程序需要一个很大的DMA缓存区的时候,怎么办呢?该机制统一将被占用的页面从内存的下部区域移动到上部空闲的区域,当完成一次整理之后,占用的页面在内存区域的一侧,空闲页面则连续的在另一侧,这样就有较大的的连续物理内存供分配使用了。

2023-08-24 21:24:24 104

原创 Linux内存管理之内存回收

随着系统的负载的增加,可用于直接分配的空闲页面越来越少,当它少于某一阀值的时候,一个分配请求到来就会唤醒kswapd守护进程,它将对内存页面进行异步扫描,判断它们的可用性后,要么释放,要么交换到存储设备中。随着内存使用量的继续增加,到达另一个最小的阀值,这个阀值触发直接回收的操作,在这种情况下,内存分配立即停止,直到回收足够多的内存页面来满足请求。在大部份情况下,如果内存页面在内核空间用于DMA缓存区,那么它是不能直接被回收再利用的,并且一直持有该页面空间,直到用户去主动释放。

2023-08-22 23:18:08 199 1

原创 Linux内存管理之匿名内存

在通常情况下,匿名内存规定了程序能够访问的虚拟内存域。当读取数据时,会创建一个匿名页表的对象(),该对象映射到一块空白物理内存页面(被格式化,填满0)。当执行写操作时,数据被写入到与之匹配物理内存页面中。匿名页面将被定义为脏页,脏页能够被系统回收复用。匿名内存的创建方式有两种,一种是通过程序的堆或栈来创建;另一种方式是通过系统调 用来产生(如系统间的请求、接收网络数据、发送数据等)。匿名内存又叫匿名映射,是指内存中的数据并不来自系统文件的内存。

2023-08-20 08:44:52 229

原创 Linux内存管理之页面缓存(Page Cache)

已持久化的页被标记为脏页,这些页可以被Linux复用,它通过同步机制保证页面缓存中的内容与更新后的文件数据一致。类似的,当需要向一个文件中写入数据时,首先把数据写入到页面缓存中,然后再将数据持久化到存储设备中。每当读取数据时,为了提高后续再次读取的效率,减少再次从硬盘读取数据的时间,数据被放到页面缓存中。通常情况下,读取文件数据到物理内存中,物理内存的数据根据一定的策略进行更新。

2023-08-16 22:03:27 165

原创 Linux 内存管理之节点内存(Nodes)

在这类系统中,内存被划分成不同的堆,程序根据访问堆的“距离”不同,有不同访问的延迟。每个堆都被称作一个节点,对于每个节点,Linux都会构建一个独立的内存管理子系统。节点有自己的一组区域、页表、内存页及多种计数器。大部份多进程系统都是非统一内存的访问系统(NUMA)。

2023-08-15 21:21:57 117

原创 Linux内存管理之内存域(Zones)

在另一些情况下,所需要的物理内存超过了虚拟内存最大可寻址的范围,这个时候就需要一些特殊的操作来访问内存了。Linux根据内存页面在设备中的用途将它们进行分组,这些分组称为域。例如Zones_DMA,包含用于DMA的设备的内存页面;Zones_Normal,包含正常寻址的页面。不同的平台对于DMA有不同的需求,内存域的实际布局依赖于硬件,并不是所有架构都有定义域,在有些情况下,设备并不能直接访问所有的物理内存(DMA)。在通常情况下,硬件会限制能够访问的物理地址范围。

2023-08-14 21:50:50 66

原创 Linux 内存管理之Huge pages-大页内存

许多现代CPU体系架构,允许页表中的高维度直接映射到内存页面。在Linux中,这样的页面被称为大页面,使用大页面能显著降低TBL的压力,提高TBL的命中率,进而提高了系统的整体性能。第一种方式是HugeTLB文件系统(HugeTBLFS),它是一种使用RAM作为备份存储区的伪文件系统,通过该系统创建的文件,数据保留在内存中,并通过大页面进行映射。第二种方式是透明大页面(THP),与HugeTLB不同的是,HugeTBL需要管理员配置哪些系统内存需要被映射成大页面,而THP的这些管理对用户是透明的。

2023-08-13 14:17:14 501

原创 Linux 虚拟内存入门

此外,不同的CPU架构,甚至相同架构的不同实现,对于查看这些范围的地址也是不一样的。通过虚拟内存,每个物理内存的访问都通过一个虚拟地址,当CPU从系统内存中读取(或写入)指令时,它通过MMU**,将指令中编码的虚拟地址转化为内存控制器所能理解的物理地址。应用程序通过虚拟内存抽象了物理内存的细节,只允许在物理内存中保留需要的信息,并且提供了一种在不同进程间的数据保护和数据共享机制。每个物理内存业都可以被映射为一个或多个虚拟内存页,这些映射关系保存在页表中,它是一个多维的数据集合,通过它可以将程序使用的。

2023-08-12 10:02:26 122

原创 Liunx内存管理概述

如果内存管理系统不包含MMU则被称为NO-MMU,它绝对值期待,希望它最终被创造出来。虽然两者在概念上是类似的,但是这里只讲有MMU的,CPU可以通过虚拟地址找到物理地址。在Linux中,内存管理经过多年的发展,已经变成一个超级复杂的系统,它紧跟时代的变化,包含越来越多的功能以支持MMU-less微控制单元和超级计算机的需要。

2023-08-10 21:11:21 114

原创 Linux 内存管理

顾名思义,Liunx内存管理子系统在系统中负责管理内存。它包括虚拟内存管理、段与页的实现、内核态与用户空的空间分配、将文件映射到进程空间等,很多很多酷炫的功能。Linux内存管理是一个非常复杂的系统,它有非常多的可配置项。大部份这些配置项可通过**/proc文件系统。Linux内存管理有很多专业术语,如果你还不熟悉它,请考虑阅读后续的。systemctl**命令进行调整。

2023-08-09 22:07:27 146

原创 企业信息化简介

信息化简介

2023-02-08 23:29:12 95

原创 忍无可忍,狂暴SpringMVC使用中的几雷区

ControllerController干啥的?  接收前端请求,调用Model进行业务处理,并将处理结果返回。  说白了就是调用和编排业务处理服务进行业务处理。Controller不能干啥?不做业务处理,不做业务处理,不做业务处理(重要的事说三遍)。ModelModel进行业务处理,它在进行业务处理时,应该是无状态的(也必须是无状态的),有些“”大佬“”总喜欢把Request, Session这些对象当参数传进来,乍不上天呢?IOC控制反制,管理bean,地球人都知道。但是这个管理必须在

2021-05-11 00:07:16 106

原创 HTTP 2 的地位尴尬

HTTP2自HTTP 2发布已来,一直不温不火,个人觉得有两个最主要的原因:HTTP 1.1 用着也还行,性能不好,但也不算差。HTTP 3 出来得太快了,没有给HTTP 2留下发挥时间,HTTP 2还没来得及全面推广,HTTP 3就横空出世了,既然有更好的可以用,有什么理由还升HTTP 2呢?...

2020-12-18 20:49:01 486 1

原创 HTTP的前世今生

HTTP 0.920世纪90年代初期互联网络非常简陋,计算机的计算能力还比较低,这时候网上的绝大部份资源都是纯文本的,这时候的http被定义成0.9版,功能非常有限,它同样也采用了纯文本格式,只能从服务器上GET资源,而且在响应请求之后立即关闭连接。HTTP 1在1993年~1995年之间,基于多媒体的发展以及各种浏览器争相出场,极大的激起了广大网民的热情,越来越多的人喜欢上了网络,研究HTTP并提出了很多的改进意见,极大的促进了HTTP的发展,HTTP 0.9已经跟不上时代的步伐了,这时HTTP 1

2020-12-16 23:03:38 144

原创 2.什么是DDD

文章目录DDD历史DDD的春天DDD历史DDD:领域驱动设计,它是一种设计思想,能有效的指导中台业务数据建模及微服务设计。DDD分为战略设计与战术设计。首先通过战略设计,建立领域模型; 其次通过战术设计完成领域模型到微服务的设计与落地。DDD的春天2003年DDD就产生了,但是一直不温不火,这是为什么呢?主要有两方面的原因:一是、在一段时间内,单体应用能够支持业务与数据的需求;二是、而DDD本身具有一定的复杂度,使用DDD需要一定的成本(学习成本、使用成本)。但随着业务与数据的暴发式增长,单

2020-08-11 00:06:32 220

原创 1. 微服务与DDD

这里写目录标题1.什么是微服务2.微服务边界3.微服务的拆分和设计4.DDD1.什么是微服务微服务专注于做一件事,并把它做好。它能很好的实现复用、高度自冶(独立开发、部署、运维、监控等)、横向扩展(有状态的除外)。2.微服务边界微服务的边界一般可以划分为逻辑边界、物理边界、代码边界。**逻辑边界:**为了完整的达到某一个业务目标,各微服务或模块之间的边界。**物理边界:**从部署和运行的视角上来讲、各微服务之间的部署和运行是相隔离的,不同的微服务运行在不同的服务器上(至少是不同的进程里)。**

2020-06-14 23:34:28 189

原创 快速定位Java线上环境问题

目录CPU占用率高栈内存溢出三级目录CPU占用率高栈内存溢出三级目录

2020-05-26 22:35:47 217

原创 Spring、Spring boot、Spring Cloud区别之我见

不管是Spring、Spring Boot、还是Spring Cloud都应时代的需要而生。最初Spring的出现是为了整java框架生态,简化J2EE企业级开发。但随着Spring家族在实际上的广泛使用,大家发现所有的有好多东西在项目中都是共同的,大家每创建一个项目,都在重复的进行这些共同的操作,这样损时耗力,如果把这些共同的东西都纳到Spring家族挥下,Spring家族会变得更强大,而大家使用起来也会更加的省时省力,就这样Spring家族的新分支Spring boot诞生了。随后信息爆炸、

2020-05-16 21:04:03 120

原创 记SocketException: Broken pipe的一种可能

目录1. 问题背景2. 问题原因3. 解决方案1. 问题背景2017年移动子项目B上线后,因为子项目B需要与A项目进行频繁的交互,A服务器(Redhat 7.0)经常会抛出以下异常:org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Broken pipe.当时还未来得及分析处理,恰巧另一...

2020-05-07 21:50:06 1170

原创 快速失败机制

文章目录定义原理触发modCount++一边遍历一边修改安全失败机制定义原理触发modCount++一边遍历一边修改安全失败机制#定义通过迭代器遍历一个集合对象时,如果在遍历过程中对集合对象进行了修改,则在下一次迭代时会抛出ConcureentModificationException.#原理每个集合对象都有一个modCount值,每一次对集合进行修改,modCount值都会加1...

2020-05-06 22:36:20 228 1

原创 白话:TCP四次挥手

TCP四次挥手是基于友好的断开连接方式,做事有开头,也有做好收尾。、即可以是B端发起断开请求,也可以是S端发起,下面以B端发起为例。1.B端对S端说:兄弟,我的事做完了(不发数据了),你还有啥交待的没有(可以收)?2.S端回B端说:朋友,你先等我一下,我还有点东西发给你呢。3.S端传完东西后发B发信号:朋友,东西我都给你了,你看一下收到没。4.B端收到S端的信号后:兄弟,东西我...

2020-05-04 18:11:18 1047

原创 TCP三次握手简单总结

TCP为啥是三次握手?为了可靠连接,并且达到可靠连接的最少握手次数啥是可靠连接?让B/S端都知道彼此都可以正常的发送和接收数据的。第一次握手B发完数据后,啥都不知道。S接收到数据后,知道B发送数据正常 ,自己接收数据正常。第二次握手S发完数据后,它的思想还停留在一阶段,只知道B发正常,自己收正常。B接收到数据后,知道自己发收正常,S发收也正常。第三次握手S接收到数据后...

2020-05-01 23:28:52 478

原创 二、企业信息化平台之初始

企业从零开始推行信息化,刚开始必定困难重重。原因主要有以下几个方面:1. 你去各部门进行需求调研,必然给相关部门的相关人员制造很多事,有抵触心理; 2. 人的安于现状本能,天然的有抵触;3. 有人喜欢混水,不想太过规范;4. 公司一切的变化,你得跟着变,如组识架构、制度、流程、模版等。5. 需求量极大、极大、极大。怎样面对和解决这些问题呢?积极主动的沟通:沟通要主意方式,可以是会议...

2020-04-26 22:20:05 132

原创 一、企业信息化平台:自研 OR 采购?

从2015年开始,公司急巨扩张,随着公司的人员越来越多,体量越来越大,人员分布越来越广、管理越来越混乱等原因,公司决定根据自身需要,自研一套企业信息化平台。  有人估计要问,现在业界内有很多成熟的信息化系统产品和解决方案,为啥不采购一套?在国内大部份企业是比较有特色的,很难形成一套成熟、通用、确实可行的产品,而且每个企业。如果你购买了现有的产品,那么很多企业的工作模式、工作流程都需要跟着调整...

2020-04-23 22:01:19 784

原创 数据库灾备

最近听说某大哥想不开,决定乘风破浪,删库尿遁。最后导致XX公司巨大损失,自己也被送进了水库。最近舆论所向,程序员又背锅了。咱程序员是纯粹的,咱来研究怎么防止此类问题。一、灾备 一般的做法是建立三个数据中心:A B C A为生产数据中心; B为数据据同步中心(实时的将数据从A中心同步过来), A与B至少应该在不同的机房; ...

2020-04-13 21:33:46 645

原创 Git常用操作

一、从github或码云上拉取项目到本地1. 创建项目存放目录2. 进入创建的目录,击右键,选择“Git Bash Here”3.在弹出的命令行中输入:git init4.将本地仓库关联到远程仓库:: git remote add origin https://gitee.com/xxx/xxx.git5. 拉取远程项目到本地路径:git pull origin...

2020-04-07 23:37:09 101

原创 MongoDB使用过程中遇到的几个问题

使用MongoDB(版本:3.4.3)有一段时间,将使用过程中遇到的一些问题进行整理。1.因物业停电导致机房断电,服务器宕机,MongoDB无法重启的问题。删除数据存放目录下的.lock文件,然后进行启动即可。2.单点单个collection数据过多,查询性能明显降低的问题。至今总共经过了两个阶段的优化。第一阶段:单个collection的数据超过12W时,查询性能明显下降。经过...

2020-03-06 14:38:53 817

原创 mongodb之认证授权

在mongodb中,通过  mongod.exe --dbpath=D:\mongoData --logpath=D:\mongoData\log\mongodb.log 这种方式启动DB,无需授权就可登陆并且拥有所有的数据库操作权限,这样相当于给他人打开了数据操作的大门。  出入数据安全,必须授权用户进行登陆。以下为授权认证登陆的步骤(版本3.4)1. 首次通过无授权方式

2017-01-08 10:16:16 361

原创 mongodb 二

声名:因为mongodDB版本较多,不同版本间,操作,命令有很大差异,本人所有内容都是基于mongoDB3.2 的版本。前文说到了建立,删除,启动,关闭MongoDB服务,本文接着说明建库,用户等操作。1.mongo shell,啥是mongo shell?说白了就是数据库本身提供一个管理本身的接口(支持JAVASCRIPT)2.启动MongoDB服务之后,使用命令行模

2016-12-14 00:13:37 511

原创 mongoDB的使用一:环境搭建

最近负责公司框架这一块的搭建,刚好需要用到mongoDB, 分批整理,供大家参考学习。1.安装 mongodb 3.2(个人安装路径:D:\mongodDB)(下载链接:https://www.mongodb.com/download-center)。2. CMD 到安装目录( D:\mongodDB\bin3. 指定DB数据存放路径:a). 新建文件夹:D:\mongoD

2016-12-12 22:10:23 777

原创 大数据量处理的问题

在很多时候,会碰到数据量很大的问题,在处理大数据的问题上,主要有以下几种方式:1。数据库优化,SQL优化。2。查询条件优化。3。临时表,历史表等。前面这三种方式往往不能辙底的解决大数据量带来的问题(查询速度慢,造成锁表,死锁,数据回滚等),所以就出现了第四种比较间接的方式:4。跑批。      对于要求不同的结果,设计有所不同,但跑批的形式大体相同,如查询多张表中的大量数据

2012-03-04 23:42:33 390

原创 前台生成验证码

<br /><%@ page contentType="image/jpg; charset=GBK" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%><br /><%!<br />Color getRandColor(int fc,int bc){//给定范围获得随机颜色<br />        Random random = new Random();<br />        if(fc>255) fc=255;<b

2011-02-24 09:45:00 301

原创 导出EXCEL

JSP,导出,EXCEL

2010-11-15 14:17:00 338

原创 下载

下载

2010-11-15 11:49:00 403

原创 解析JSP上传的EXCEL文件

上传,EXCEL,解析,XLS。

2010-11-15 11:40:00 1870 1

原创 SWING中进度条的问题

SWING、PROGRESSBAR

2010-09-30 11:22:00 1718

翻译 生成验证码图片

<br />package com.infowell.manager.module.login;<br />import java.awt.Color;<br />import java.awt.Font;<br />import java.awt.Graphics2D;<br />import java.awt.image.BufferedImage;<br />import java.io.FileOutputStream;<br />import java.io.IOException;<br />i

2010-09-06 12:09:00 307

show-busy-java-threads.sh

用于快速排查Java的CPU性能问题(top us值过高),自动查出运行的Java进程中消耗CPU多的线程,并打印出其线程栈,从而确定导致性能问题的方法调用。

2020-05-10

FTP连续上传下载工具

BAT方式运行JAVA程序,实现文件的连续上传,连续下载。(符加使用配置说明) 配置方式为:解压缩文件后,安照使用说明就可以了。

2015-02-06

FTP上传下载源码

JAVA实际FTP上传,下载(可配置),所需的要JAR全都包含在内

2015-02-06

sqlServer2008驱动包

单纯的sql server 2008驱动包,直接可用。

2014-11-05

select 的相关操作

select的相关操作,包括上移,下移,删除,添加等。

2011-07-24

JAVA 导出EXCEL

传入LIST列表,表头,则可导出EXCEL格式

2011-04-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除