- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 【无标题】
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2022-11-12 15:37:23
848
1
原创 Xgboost的优点分析
优点简介:1,残差思想,不同树的累加;2,正则化,防止过拟合,叶子节点个数和叶子节点权重的L2范式;3,二阶泰勒展开式,一是增加了精度。4,列抽样,防止过拟合。https://zhuanlan.zhihu.com/p/83901304...
2020-03-29 12:44:20
1442
原创 条款34:区分接口继承和实现继承
目录接口继承和实现继承不同。纯虚函数 pure virtual简朴的虚函数/非纯虚函数 inpure virtual非虚函数 non-virtual接口继承和实现继承不同。在public继承之下,derived classed 总是继承base class的接口。 纯虚函数 pure virtual virtual void draw() const...
2020-03-29 09:54:33
196
原创 条款29:为“异常安全”而努力是值得的
考虑以下情况:如果1,new失败的话,不但互斥锁mutex永远无法释放,而且会导致bgImage指向的内容无效,破坏了数据。Mutex mutex; // for lockvoid fun() { lock(&mutex);//取得互斥器 bgImage = new Image();//1 unlock(&mutex);//释放互斥器}//...
2020-03-28 22:23:16
151
原创 条款26:尽可能延后变量定义式的出现时间
开销1:考虑以下流程:也就是入参为非法值的时候,仍然执行了没有必要的1,增加了构造和析开销。fun(int* p ){string tmp; //1if(p == null){ return null; //2}...return tmp;}更好的方式是:以下情况出现不合适的入参,直接退出,就不会额外增加//1的构造和析构开销。fun(i...
2020-03-28 21:55:41
151
原创 条款25:考虑写一个不抛一场的swap函数
template <typename T>void swap(T& a, T& b) { T tmp(a); a = b; b = tmp;}
2020-03-28 21:30:59
118
原创 effective C++ 条款23 宁以non-member,non-friend替换member函数
选择non-member,non-friend,替换member函数从封装进行考虑。如果某些东西被封装,它就不再可见。越多东西被封装,越少人可以看见它。而越少人看到它,我们就有越大的弹性去改变它。越多东西被封装,我们改变那些东西的能力就越大。这就是我们首先推崇封装的原因:它使我们能够改变事物而只影响有限客户。导致较大封装性的是non-member,non-friend函数,因此,...
2020-03-28 21:25:46
122
原创 c++知识点_赋值运算符,构造拷贝函数
Person p; Person p1 = p; // 1Person p2;p2 = p; // 2是虽然使用了"=",但是实际上使用对象p来创建一个新的对象p1。也就是产生了新的对象,所以调用的是拷贝构造函数。 首先声明一个对象p2,然后使用赋值运算符"=",将p的值复制给p2,显然是调用赋值运算符,为一个已经存在的对象赋值 。总结拷贝构造函数和赋值运算符的行为比较相似,却...
2020-03-28 21:08:47
158
原创 k8s学习记录5_容器Cgroup和Namespace特性简介
Cgroup是Control group控制组的意思,主要做资源控制,将一组进程放在一个控制组里,通过给这个控制组分配指定的可用资源,达到控制这一组进程资源的目的。NamespaceNamespace又称为命名空间,将对象分割成完全独立且不重叠的组。(有待完善)CgroupCgroup是control group,又称为控制组,它主要是做资源控制。原理是将一组进程放在放...
2020-03-28 20:57:20
1491
原创 c++知识点_lambda的好处
1,一直未能体会完全lambda的好处,先看看别人的理解先:lambda 表达式是一种匿名函数,即没有函数名的函数2,直接使用lambda简单,优雅的实现了,简单函数函数。...
2020-03-28 20:35:09
3959
2
原创 k8s学习记录4_通讯原理
1,通讯方式,k8s网络模型是期望pod在一个直接连通的扁平的网络空间中。 从pod角度来看是所有pod都可以通过ip“直接”到达。直接加引号,下面会看到如何实现。2,openstack中使用了ovs+trunk的方式实现了扁平化网络,待会后面会对比k8s的实现方式,大同小异,都是报头跟udp。3,同一个pod之间通过pause,用同一个网卡跟io可以直接访问...
2020-03-27 22:58:41
181
原创 k8s学习记录3_daemonSet, job, 服务发现
1,守护进程daemonSet。2,job确保可以执行成功,甚至可以设置执行1次,或者2次。3,服务发现,跟标签有关(可分到同一个标签下的不同nod),通过service转交到不同的pod上去执行。4,port或者ingress对外暴露访问。...
2020-03-27 22:16:48
185
原创 网络基础知识
NAT network address translation 将公有网络转换为私有,或者私有网络转换成公有网络对外进行访问。因为ipv4的数量有限,只有有4G个,所以需要进行转换,ipv6以后可能会解决这个问题。...
2020-03-27 16:08:22
154
原创 k8s学习记录2_pod概念RC,RS,DP,HPA,StatefulSet
同一个pod'中即共享网络,又共享存储卷,所以同一个pod里的容器端口不能冲突。RS替换了RC(因为RS支持集合操作),并且官方建议使用Deployment来统一管理(支持滚动更新)。DP来控制RS去创建pod。更新完毕之后,老得RS并不会被删除,只是停用,方便后面回滚使用。HPA(horizontal Pod Autoscaling)也就是说pod的cpu...
2020-03-26 23:32:50
793
原创 k8s学习记录1_组件说明
1,简单发展史,感觉发展很快啊,另外ipvs是什么有待查询?2,各组件作用,红色为master,绿色为worker3,之前的borg版本4,k8s 跟数据库的交互只通过APIkube proxy实现负载均衡,操作防火墙...
2020-03-26 23:05:13
113
原创 k8s学习记录1_docker概念,k8s概念
docker对比虚拟机 docker更加轻量级:每个虚拟机需要运行自己的一组系统进程; 虚拟机的主要好处:它们能提供完全隔离的环境,因为它们都运行在自己linux内核上。 容器的隔离技术: linux命名空间隔离:(文件,进程,网络接口,主机名等) linux控制组(cgroups):限制了进程使用的资源(CPU,内存,网络带宽 docker概念:docker是一个打包,...
2020-03-25 22:42:56
129
原创 tensorflow常用学习链接
常见链接如下静觅的TensorFlow MNIST初级学习 代码可用https://cuiqingcai.com/4898.html
2018-08-21 22:49:53
163
原创 statement with no effect 解决
调试中出现这种错误,找了好久,竟然是这样的原因。// aa 的注释风格 换为/*aa */就可以了。
2015-11-24 20:19:26
18805
原创 内核源码调试及实现
修改内核源码,使用的优麒麟15.04,内核版本为linux3.19一步一步跟着做,一定可以实现看到在内核中添加的打印语句输出。内核源码调试步骤 3部曲:一,装个linux系统(我装的是双系统);二,编译内核源码,使用新内核启动;三,修改代码,重启。 步骤一,参考以下链接http://jingyan.baidu.com/article/7
2015-10-25 17:21:55
1277
原创 linux调度器_第三代cfs(4)_总手稿_完结篇
这是自己之前自己写的手稿,在我这里用UE打开的格式有点不一样,所以在这也许有点乱,大概还是可以看的,有兴趣的朋友可以看看。前段时间看了那么久的调度器,感觉又忘了差不多了,还是来整理下。1.先理理还能记下什么:a.goto在这里很合适,可以生成最有的汇编代码;b.虚拟时间是个很牛B的东西。c.第一代,从第一个找到最后一个看哪个优先级高;第二代,把优先级分成四十个等级,
2015-07-06 14:35:16
604
原创 linux调度器_第三代cfs(3)_分解代码vruntime的详解
前面讲了排队的关键值,是靠这两个参数确定的se->vruntime - cfs_rq->min_vruntime,后一个参数是为了建立一个标准,像一本线二本线那样的概念,所以今天我们来重点讨论第一个参数的情况。vruntime的详解:看到虚拟运行时间,肯定会想到有一个真实的运行时间,
2015-07-03 16:42:02
1976
1
原创 linux调度器_第三代cfs(2)_分解代码_vruntime和min_vruntime大概理解
接上文,上文我都记不太清楚了,没关系,看题目,我们是要来分解代码的。把《linux调度器_第三代cfs(1)_引入》中的代码放上来先。//kernel\sched_fair.c 138行static inline s64 entity_key(struct cfs_rq *cfs_rq, struct sched_entity *se) {return se-> se-
2015-06-26 09:32:06
1987
原创 linux调度器_第三代cfs(1)_引入
不计其数的妹子又来了,真是烦恼啊,该怎么办,让我很快就选择一个最好的妹子呢?为什么要从第三代开始呢?不应该是从简单的先来吗?我是想着有些朋友可能就想学习最新的,就像大家都抢着买最新款的手机一样,据说九月份iphone7要出了。让CFS这种算法来吧,核心思想就是完全公平,这种思想也算是打破之前的一种观念。以前的时候,大家会把进程分为交互式进程,实时进程,以及一般的进程,交互进程就是想我们这样
2015-05-02 13:46:33
584
原创 linux调度器概观
由来:想问问你,想找个什么样的对象?假如有一大波妹子,让你在其中选一个做女朋友,你会怎么选?这种情况对于理工科的男生是不存在的,听到那些外国语大学的男生们说看到学校里俩男生一起去吃饭都不正常,我就愤怒了要。好了还是假如,你会选个什么样的,白富美,然后气质再好一点,最好会什么乐器,会唱歌,然后身材在好一点,这样的,不知道你满意了吗?如果有,就要了吧。一开始选择的时候,我们可能会把每个妹子都看一遍
2015-05-01 21:44:35
456
转载 linux
一些重要的杂项调度程序的效率“优先级”明确了哪个进程应该被调度执行,而调度程序还必须要关心效率问题。调度程序跟内核中的很多过程一样会频繁被执行,如果效率不济就会浪费很多CPU时间,导致系统性能下降。在linux 2.4时,可执行状态的进程被挂在一个链表中。每次调度,调度程序需要扫描整个链表,以找出最优的那个进程来运行。复杂度为O(n);在linux 2.6早期,可执行状态的进程
2015-04-15 19:47:42
457
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人