前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第3期 ARTS 打卡计划

第3期 ARTS 打卡计划

作者头像
闻人的技术博客
发布2020-06-09 15:10:48
2880
发布2020-06-09 15:10:48
举报

ARTS 起源

关于 ARTS:一个需要持续地坚持的高效学习项目,每周写一个ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。

本周 ARTS:

  • Algorithm: 移动零
  • Review: The 7 most important software design patterns
  • Tip: 使用 ab 对 HTTP 接口快速压测
  • Share: 如何用 Docker 快速搭建 MySQL 主从

Algorithm:移动零

来源:283. 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/move-zeroes 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:双指针法
  • 定义变量 k 为末位的非零元素位置,初始值为 0,i 为遍历数组的首位置;
  • 遍历数组时,如果遇到零元素则跳过当前循环,遇到非零元素时就将所在项的值赋值给 k 位置元素;
  • 如果存在零元素, k 与 i 就会不一致,此时就将 i 位置的元素赋值为 0,相当于i 位置元素与 k 位置元素交换;
  • 最后末位的非零元素位置后移,即 k++。
class Solution {

    public void moveZeroes(int[] nums) {
        int k = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                nums[k] = nums[i];
                if (i != k) {
                    nums[i] = 0;
                }
                k++;
            }
        }
    }
}

时间复杂度:O(N)

Review:The 7 most important software design patterns

原文来源:medium

https://www.educative.io/blog/the-7-most-important-software-design-patterns

阅读评论:最常用的设计模式介绍

文章介绍了7个最常用的设计模式,单例模式,工厂模式,策略模式,适配器模式,状态模式,观察者模式的关键点和使用场景。

Tip:使用 ab 对 HTTP 接口快速压测

主题:ab 进行性能测试快速上手

首先介绍下什么是 ab: 全称为 Apache Bench,是 Apache HTTP 服务器专门用来对服务进行基准测试的性能测试工具,属于 httpd-tools 包的一部分,专门用于测试 Web 服务,并且上手容易,使用简单,特别适合我们对单个接口进行性能测试和高并发测试。 下面再介绍下 Linux 环境下 ab 的安装和常见用法。 使用 yum 安装 yum -y install httpd-tools ,安装完成后输入 ab 命令,看到以下提示表示安装完成:

接下来看下如何分别对 GET 接口和 POST 接口进行测试:

  • GET 请求测试 ab -c 10 -n 100 https://www.baidu.com/
  • POST 请求测试 ab -n 100 -c 10 -p 'post.txt' -T 'application/x-www-form-urlencoded' 'http://test.api.com/test/register' 其中 post.txt 内容为 POST 请求参数:usernanme=test&password=test&sex=1 。 这里再说明下上述 ab 命令所用到的参数:
  • -n:总请求次数,默认为 1;
  • -c:并发次数,默认为 1,不能超过总请求次数,比如发起 100 个请求要求100 个并发,实际就是 1 人 1 次请求。
  • -p:指定 post 参数文档路径
  • -T:指定 header 头文件参数

更多的其他参数使用方式可以参考命名 ab -help 。 最后再来命令执行后的输出内容,针对几个重要的参数指标进行说明。

  • Time taken for tests:完成所有请求所花的时间
  • Requests per second:吞吐率,表示当前并发次数下 1 秒时间内处理的请求数。
  • Time per request:用户平均请求等待时间和服务器平均请求处理时间
  • Percentage of the requests served within a certain time:所有请求的时间分布情况
参考资料
  • ab 官方文档:https://httpd.apache.org/docs/2.4/programs/ab.html

Share:如何用 Docker 快速搭建 MySQL 主从

主题:Docker,MySQL 主从

介绍了如何使用 Docker 容器技术快递搭建 MySQL 主从架构。

文章地址

https://www.yuque.com/docs/share/92cc8140-72e9-43a8-b38f-85de9f04ab0a?#

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 闻人的技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ARTS 起源
  • Algorithm:移动零
    • 来源:283. 移动零
      • 思路:双指针法
      • Review:The 7 most important software design patterns
        • 原文来源:medium
          • 阅读评论:最常用的设计模式介绍
          • Tip:使用 ab 对 HTTP 接口快速压测
            • 主题:ab 进行性能测试快速上手
              • 参考资料
              • Share:如何用 Docker 快速搭建 MySQL 主从
                • 主题:Docker,MySQL 主从
                  • 文章地址
                  相关产品与服务
                  容器镜像服务
                  容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档