一、背景GitHub正式宣布以开源方式发布gh-ost:GitHubMySQL无触发器在线更改表定义工具!下面是官方给出gh-ost产生背景。gh-ost是GitHub在2016年5月份开源,目的是解决一个经常碰到问题:不断变化产品需求会不断要求更改MySQL表结构。gh-ost通过一种影响小、可控制、可审计、操作简单方案来改变线上表结构。在介绍gh-ost之前,我们先了解一下各种现
零、参考文档作者说明一、GC实现需要考虑问题1、着色可以处理循环引用mark and sweep实现,通过着色方法,一个优点就是可以避免循环引用,当A和B两个对象可能互相指向对方时,着色可以避免无限递归。2、全量集和可达集sweep时候是清除没有被访问过节点,相当于从全量集合中删除子集。所以就需要有一种方法,能够找到系统中所有的变量;加上一个遍历起点(也就是根节点),从而mark所有可
基础知识young gc 主要采用是copying GC算法;copying GC算法主要有以下两个步骤: Root Scanning Object Copy copying Gc执行过程大概是从 Gc roots开始扫描其引用,扫描到就是认为是存活对象,其他就是不需要对象,然后把存放对象进行移动就OK了。young gc 耗时也基本上都在这两个步骤上。要想减少一次young gc时间,必须想办法减少上面两步耗时。根据官方文档可以知道,GC roots 包
转载 2021-07-28 17:08:06
1155阅读
概念高内聚低耦合,是软件工程中概念,是判断软件设计好坏标准,主要用于程序面向对象设计,主要看类内聚性是否高,耦合度是否低。目的使程序模块可重用性、移植性大大增强。通常程序结构中各模块内聚程度越高,模块间耦合程度就越低。内聚是从功能角度来度量模块内联系,一个好内聚模块应当恰好做一件事,它描述是模块内功能联系;耦合是软件结构中各模块之间相互连接一种度量,耦合强弱取决于模块间接
事件分类:web入侵:挂马,篡改,webshell系统入侵:系统异常,RDP,SSH,主机病毒。木马:远程,后门软件,信息泄露:脱裤,数据库登陆(弱口令)网络流量:频繁发包,批量请求,DDOS攻击应急排查操作1,通过iptables完成网络层隔离#/bin/bash iptables-save > /root/iptables.bak ##备份系统iptables规则文件 iptables
我在前面的文章(Android智能手机上音频浅析)中说过Android手机上有一块专门用于音频处理DSP,它特点是频率低(一般几百MHZ)、内部memory小(通常不超过100k word)。要想让Audio DSP上放下更多内容以及能流畅运行,要有一些应对措施。今天就聊聊这些措施。 1,频率低应对措施由于DSP频率低,要想软件能流畅运行,就得把运行时load降下来。主
文章目录1 基本语法2 注释3 标识符4 变量5 关键字 1 基本语法Lua 提供了交互式编程模式,即可以直接在命令行中输入程序并立即查看效果。使用 lua -i 命令可以打开交互窗口。以下演示打开交互窗口,并使用打印语句输出内容。[root@chenpihost lua-5.4.3]# lua -i Lua 5.4.3 Copyright (C) 1994-2021 Lua.org, PUC
转载 2024-02-25 08:18:16
114阅读
弱引用GCLUA和C#一样,也分值类型:数值,BOOL; 引用类型:LUA表,线程,协程,function, userdata。 弱引用最好只用在引用类型上,若用在数值类型及非构造类型,如数值,字符串等则会出现手动GC不能起作用现象。 弱表(weak table)是一个很有意思东西,像C++
转载 2016-10-27 12:52:00
409阅读
2评论
1. 概述常见RGB格式有RGB1、RGB4、RGB8、RGB555、RGB565、RGB24、RGB32、ARGB32等,如表所示。2. RGB1、RGB4、RGB8RGB1、RGB4、RGB8都是调色板类型RGB格式,在描述这些媒体类型格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们图像数据并不是真正颜色值,而是当前像素颜色值在调
  学习了:javascript 内存泄露   1、什么是内存泄漏  先上定义,内存泄漏(Memory Leak)是指程序中己动态分配堆内存由于某种原因程序未释放或无法释放,造成系统内存浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。  内存泄漏问题很常见,通俗表现就是用着用着任务管理器里内存占用越来越大~~~越来越大~~~比如侠客风云传刚出那会儿,玩着玩着就好多G内存占用了
转载 2024-07-11 19:13:22
55阅读
(1)对象不用时最好显式置为Null一般而言,为Null 对象都会被作为垃圾处理,所以将不用对象显式地设为Null,有利于GC 收集器判定垃圾,从而提高了GC 效率。(2)尽量少用System.gc()此函数建议JVM 进行主GC,虽然只是建议而非一定,但很多情况下它会触发主GC,从而增加主GC 频率,也即增加了间歇性停顿次数。 (3)尽量少用静态变量 静态变量属于全局变量,不会被GC
c++Lambda匿名函数(1) 定义a. [外部变量方位方式说明符]b. (参数)c. mutabled.noexcept/throw()e.->返回值类型f.函数体(2)C++11中拉姆达表达式中()可以省略吗(3)C++14中引入泛型Lambda表达式语法 所谓匿名函数,简单地理解就是没有名称函数,又常被称为lambda函数或者lambda表达式。(1) 定义lambda匿名
Lua 提供了一个自动内存管理。这就是说你不需要关心创建新对象分配内存操作,也不需要在这些对象不再需要时主动释放内存。 Lua 通过运行一个垃圾收集器来自动管理内存,以此一遍又一遍回收死掉对象(这是指 Lua 中不再访问对象)占用内存。 Lua 中所有对象都被自动管理,包括: table, userdata、 函数、线程、和字符串。 Lua 实现了一个增量标记清除收集器。它用两
有了前几天基础,我们可以从顶向下来读 lua gc 部分代码了。我们知道,lua 对外 API 中,一切个 gc 打交道都通过 lua_gc 。C 语言构建系统时,一般不讲设计模式。但模式还是存在。若要按《设计模式》中分类,这应该归于 Facade 模式。代码在 lapi.c 895 行:/* ** Garbage-collection function *
转载 2024-04-13 09:53:35
181阅读
今天来看一下 mark 过程是怎样实现。所有的 GC 流程,都从 singlestep 函数开始。singlestep 就是一个最简单状态机。GC 状态简单从一个状态切换到下一个状态,循环不止。状态标识放在 global state gcstate 域中。这一点前面谈过。开始两个状态和 mark 过程有关。初始 GCSpause 状态下,执行 markroot 函数。我们来看一下 m
转载 2024-07-16 14:53:43
181阅读
首先通过LuaEnv.Dostring()获取到Lua内容。然后通过LuaEnv.Global.Get<T>方法可以对其中属性进行获取。LuaEnv env=new LuaEnv(); env.DoString("require 'CSharpCallLua' ");//lua文件名1.获取全局变量基本属性类型例:Lua脚本 level=1 name
[code="lua"]local a = {}local b = {}setmetatable(a, b)--这个 table 中 vaules 就是 weakb.__mode = "k" -- now 'a' has weak keyslocal t1 = {}local t2 = {} -- creates first key a[t1] = 0a[t2...
lua
原创 2023-04-11 00:18:31
43阅读
一、ORACLE中,表空间是数据管理基本方法,所有用户对象要存放在表空间中,也就是用户有空间使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.  因此,在创建对象之前,首先要分配存储空间.  分配存储,就要创建表空间:  创建表空间示例如下:CREATE TABLESPACE "SAMPLE"  &n
《深入理解java虚拟机》第三章垃圾收集器与内存分配策略 一:GC分代--新生代跟老年代gc活动空间为堆区域,堆按gc处理方式也可以分为新生代跟老年代。对象内存分配跟使用垃圾收集器有关,默认是在新生代Eden区上。复制算法在新生代中,复制多次后还在就会移到老年代去(在Hotspot中当复制用那块survivor不够用,也会将这些对象分配到老年代),老年代采用标记-清除或标记-整理(
转载 9月前
27阅读
写在前面 今天不学习,明天变垃圾。最近在学习如何使用canal监听binlog并且将数据同步到es,俗话说好记性不如烂笔头,所以写一篇文章记录一下,一是为了健忘自己,二是为了恰好有此需求小可爱(程序员都是小可爱)欢迎大家学习讨论。一、开启mysqlbinlog写入功能1.在mysqlmy.ini配置文件中加入下面的配置log-bin=mysql-bin binlog-forma
  • 1
  • 2
  • 3
  • 4
  • 5