jvm系列(二)jvm垃圾收集器与内存分配策略
众所周知,在java语言中,内存分配和回收是由jvm自动管理的。因此内存的分配和回收也是jvm三大功能之一。垃圾收集器(GC)需要完成三件事情: 哪些内存需要回收? 什么时候进行回收? 如何回收? 本篇博客将解答jvm是如何处理以上三个问题的。值得注意的是,java运行时数据区中的程序计数器,虚拟机栈,本地方法栈三个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行进栈和出栈的操作,每一个栈帧分配多少内存基本上是在类结构确定下来的时候就已知的。因此以上三个区域不需要过多
Openstack中查看虚拟机console log的几种方法
Openstack中有时候虚拟机启动不正常,这时可以通过查看虚拟机console log能得到一些有用的信息。 有这些方法可以查看或获取虚拟机console log: 1)openstack控制台图形界面(horizon): 进入虚拟机(Instance)列表界面,选中相应虚拟机,点击Log页面即可;或点击右侧的“View Full Log”查看完整的log。 2)在虚拟机所在的compute节点上找到log文件: 通过virsh dumpxml指令,找到如下关键段: <console typ
PAT-B-1020
1020 月饼(25 分) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 +
(原创)让mongodb的secondary支持读操作
对于replica set 中的secondary 节点默认是不可读的。在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。 如果通过shell访问mongo,要在secondary进行查询。会出现如下错误: imageSet:SECONDARY> db.fs.files.find() error: { "$err" : "not master and slaveOk=fa
Python基础知识汇总
1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2、简述位、字节的关系 1bytes=8bit ,2**8=256,可以代表256中变化, 3、简述 ascii、unicode、utf-8、gbk 的关系 ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字
python面向对象的反射
python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射) getattr # 根据字符串的形式,去对象中找成员。 hasattr # 根据字符串的形式,去判断对象中是否有成员。 setattr # 根据字符串的形式,去判断对象动态的设置一个成员(内存) delattr # 根据字符串的形式,去判断对象动态的设置一个成员(内存)
暑假集训test-8-30(pm)
以为可以AK,结果t3没有调出来,然后被林巨踩了。 everyday被踩,很开心。 林巨真的好巨啊,这么多天已经总计虐我75分了。 1.玩具装箱 第一眼还以为是那道斜率优化dp,结果是个签到水题。 1 //Achen
2 #include<algorithm>
3 #include<iostream>
4 #include<cstring>
5 #include<cstdlib>
6 #include<vector>
7 #include<cstdio>
8 #include<
BZOJ2423 HAOI2010最长公共子序列(动态规划)
大讨论。注意去重。 #include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=0,f=1;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
Python引用拷贝赋值 Python 对象引用、可变性和垃圾回收
先安利一个网站,对学习编程很有帮助: http://www.pythontutor.com/ 可以逐行可视化执行代码,具体自行体验啦 这个网站也是我在看别人的博文时候找到的,也先贴上别人的理解吧,我觉得写的都很好: REF: Python 对象引用、可变性和垃圾回收 python 深入理解 赋值、引用、拷贝、作用域 俗话说得好,师傅领进门,修行靠个人.学python也没多久,17年的时候走过一遍语法,应该没完.当时看的byte-of-python. 我觉得这书还行,轻量化,如果学过一门编程语言
python学习笔记~INI、REG文件读取函数(自动修复)
引入configparser,直接read整个INI文件,再调用get即可。但需要注意的是,如果INI文件本身不太规范,就会报各种错,而这又常常不可避免的。本文自定义函数通过try...except..来自动纠正再重读。 此外,注册表导出文件大概齐就是INI文件格式,但取初一行的声明也会被认定为没有SECTION头而报错。本文也进行了自动纠正。 极大概率是早有人造过更好的轮子,我写在这里权当作自己学习Python的笔记。功能、特色如下: getINIValue函数三个参数,iniFile, s
靶形数独 (dfs+预处理+状态压缩)
#2591. 「NOIP2009」靶形数独 【题目描述】 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低。但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的“靶形数独”,作为这两个孩子比试的题目。 靶形数独的方格同普通数独一样,在 $9 格宽 \times9$ 格高 的大九宫格中有 $9$ 个 $3格宽\times3$ 格高 的小九宫格(用粗黑色线隔开的)。在这个大九宫格中,有一些数字是已知的,根据这些数
anaconda环境问题
1. 修改jupyter notebook 默认路径: 进入anaconda 命令行, jupyter notebook --generate-config 生成配置文件, 该文件在 本机用户名/.jupyter 下。 进入jupyter_notebook_config.py 找到 ## The directory to use for notebooks and kernels. c.NotebookApp.notebook_dir = 'C:\Users\33488\Documents'
Python学习心得(二) : 更新列表
今天写程序的时候发现列表的更新有些需要主要的地方。 ls=['a','b'] for i in ls: i=i.upper() print(ls) 这样输出的结果ls仍然是['a','b'],若想更新列表,则表现采取索引的方式。如下: ls=['a','b'] for i in range(len(ls)): ls[i]=ls[i].upper() print(ls) 这样输出的结果就是['A','B'] 。
Mac 系统 + Chrome浏览器 网页前端出现中文文字反转或顺序错乱
问题背景 React开发的系统,收到一个BUG反馈,*“号个人统计”文字不正确,应为“个人号统计”*。
收到BUG后,打开浏览器查验是什么情况,难道犯了最基本的错误,Ctrl C也能错。
随后还是查验BUG:
1. 打开浏览器,发现我的浏览器上显示“个人号统计”
2. 使用Chrome浏览器、Firefox、Edge 均为返现次情况
3. 查看代码,确实是最普通的文字 ```<span>个人号统计</span>```
最后去找BUG的发起人,确认BUG的重现现象为:
1. Mac
mysql 触发器 存储过程 java调用
触发器和存储过程是为了提高SQL的运行效率。 SQL语句先编译、后执行,而触发器与存储过程都会提前预编译完成,且只编译一次,供反复调用。 随着时代的进步,硬件与带宽的提升,触发器和存储过程提升效率并不明显,所以在传统或并发量低的项目中已经很少用到了。 1.触发器 简单的作用示意:用于增删改的时候,表关联的连贯操作(具体根据需求的表设计定义)。以前会有人说可以用来做日志统计,现实开发中,其实很少有人用库表做日志。 创建: CREATE TRIGGER trigger_name trigg
今日推荐
周排行