ARTS-week25

Algorithms

Rotate Array
思路:将n-k个数字翻转,再将k个数字翻转,之后翻转整个数组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
void rotate(vector<int>& nums, int k) {
if (nums.empty()) {
return;
}
int n = nums.size();
k %= n;

reverse(nums.begin(), nums.begin() + n - k);
reverse(nums.begin() + n - k, nums.end());
reverse(nums.begin(), nums.end());
}
};

Reverse Bits
思路:从右开始按位取出,如果取出来的是1,将res左移一位加上1;如果取出来的是0,将res左移一位,然后将n右移一位。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t res = 0;
for (int i = 0; i < 32; ++i) {
if (n & 1 == 1) {
res = (res << 1) + 1;
} else {
res = res << 1;
}
n = n >> 1;
}
return res;
}
};

Review

本周阅读英文文章 4 Tips for Better API Security in 2019
1)应用TLS加密;
2)身份验证;
3)使用访问速率限制来防止暴力攻击;
4)使用机器学习监测机器人。

Technique

1、使用lsof命令查看进程打开了哪些文件

1
2
3
4
5
6
7
8
9
10
ubuntu@VM-0-8-ubuntu:~$ lsof -p 17907
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 17907 ubuntu cwd DIR 253,1 4096 557317 /home/ubuntu/task/dev
python 17907 ubuntu rtd DIR 253,1 4096 2 /
python 17907 ubuntu 0u CHR 136,0 0t0 3 /dev/pts/0
python 17907 ubuntu 1u CHR 136,0 0t0 3 /dev/pts/0
python 17907 ubuntu 2u CHR 136,0 0t0 3 /dev/pts/0
python 17907 ubuntu 3r CHR 1,9 0t0 11 /dev/urandom
python 17907 ubuntu 4r CHR 1,9 0t0 11 /dev/urandom
python 17907 ubuntu 5w REG 253,1 22550 557532 /home/ubuntu/task/dev/test.log

其中FD表示文件描述符号、TYPE表示文件类型、NAME表示文件路径。最近一行表示这个进程打开了test.log,文件描述符是5,w表示以写的方式打开。

2、磁盘性能的衡量标准:
1)使用率,是指磁盘处理I/O的时间百分比。过高的使用率,通常意味着磁盘I/O存在性能瓶颈。
2)饱和度,是指磁盘处理I/O的繁忙程度。过高的饱和度,意味着磁盘存在严重的性能瓶颈。当饱和度为100%时,磁盘无法接受新的I/O请求。
3)IOPS(Input/Output Per Second),是指每秒的I/O请求数。
4)响应时间,是指I/O请求从出发到收到响应的间隔时间。

Share

本周阅读《Web性能权威指南》延迟与带宽
1、本地路由器的缓冲区爆满:
缓冲区爆满(Bufferbloat)是Jim Gettys在2010年发明的一个术语,是排队延迟影响网络整体性能的一个形象的说法。造成这个问题的原因主要是如今市面上的路由器都会配备很大的入站缓冲区,以便“不惜一切代价”避免丢包(分组)。可是,这种做法破坏了TCP的拥塞预防机制(congestion avoidance),导致网络中产生较长且可变的延迟时间。为解决这个问题,有人提出了新的CoDel主动队列管理算法,且已经在Linux内核3.5以上版本中实现。

2、通过波分复用(WDM,Wavelength-Division Multiplexing)技术,光纤可以同时传输很多不同波长(信道)的光,因而具有明显的带宽优势。一条光纤连接的总带宽,等于每个信道的数据传输速率乘以可复用的信道数。

0%