25-云原生应用可观测性实践-向阳Technology Co., Ltd. All rights reserved. 云原生应用可观测性实践 向阳 @ 云杉网络 2021-12-08 simplify the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 可观测性 - What & Why 云原生社区可观察性SIG-定义 demo! 目录 simplify the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 可观测性的成熟度模型 1.0 基础支柱 2.0 ? 3.0 ? simplify the growing complexity © 2021, YUNSHAN Networks Technology growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 开箱即用的解决方案 Metrics, tracing, and logging 2017.02.21 Peter Bourgon simplify the growing complexity © 2021,0 码力 | 39 页 | 8.44 MB | 6 月前3
构建统一的云原生应用 可观测性数据平台统一数据平台的落地思路及案例 构建统一的云原生应用可观测性数据平台 看云网更清晰 Simplify the growing complexity. 统一的可观测性数据平台 telegraf 看云网更清晰 Simplify the growing complexity. 挑战:数据孤岛、资源开销 数据 孤岛 资源消耗 telegraf 1. 可观测性数据平台的挑战 2. 解决数据孤岛:AutoTagging 统一数据平台的落地思路及案例 构建统一的云原生应用可观测性数据平台 看云网更清晰 Simplify the growing complexity. OpenTelemetry的方法 统一的上下文 以追踪为核心 看云网更清晰 Simplify the growing complexity. OpenTelemetry的方法 Tag, Exemplars (TraceID, SpanID) Tag & Tag 看云网更清晰 Simplify the growing complexity. 数据打通并不简单 ① Trace与「非Request scope」的Metrics 例如:响应Request A的实例在一段时间内做了多少次GC? ① 看云网更清晰 Simplify the growing complexity. 数据打通并不简单 ② 应用、系统、网络的Metrics之间 例0 码力 | 35 页 | 6.75 MB | 1 年前3
Rust算法教程 The Algos (algorithms)sort algorithm. /// /// Time complexity is `O(n + k)` on average, where `n` is the number of elements, /// `k` is the number of buckets used in process. /// /// Space complexity is `O(n + k)`, as it sorts rs/print.html 36/270 基数排序 /// Sorts the elements of `arr` in-place using radix sort. /// /// Time complexity is `O((n + b) * logb(k))`, where `n` is the number of elements, /// `b` is the base (the radix) `n` and `b` are roughly the same maginitude, this algorithm runs in linear time. /// /// Space complexity is `O(n + b)`. pub fn radix_sort(arr: &mut [u64]) { let max: usize = match arr.iter().max()0 码力 | 270 页 | 8.46 MB | 1 年前3
Hello 算法 1.0.0b1 Java版理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评估的是算法运行效率随着输入数据量增多时的增长趋势。这句话有些拗口,我们可以将其分为三 个重点来理解: 2. 复杂度分析 hello‑algo.com 13 ‧“算法运行效率”可分为“运行时间”和“占用空间”,进而可将复杂度分为「时间复杂度 Time Complexity」 和「空间复杂度 Space Complexity」。 ‧“随着输入数据量增多时”代表复杂度与输入数据量有关,反映算法运行效率与输入数据量之间的关系; ‧“增长趋势”表示复杂度分析不关心算法具体使用了多少时间或占用了多少空间,而是给出一种“趋势性 常数阶的操作数量与输入数据大小 ? 无关,即不随着 ? 的变化而变化。 对于以下算法,无论操作数量 size 有多大,只要与数据大小 ? 无关,时间复杂度就仍为 ?(1) 。 // === File: time_complexity.java === /* 常数阶 */ int constant(int n) { int count = 0; int size = 100000; for (int i = 0;0 码力 | 186 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b1 JavaScript版理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评估的是算法运行效率随着输入数据量增多时的增长趋势。这句话有些拗口,我们可以将其分为三 个重点来理解: 2. 复杂度分析 hello‑algo.com 13 ‧“算法运行效率”可分为“运行时间”和“占用空间”,进而可将复杂度分为「时间复杂度 Time Complexity」 和「空间复杂度 Space Complexity」。 ‧“随着输入数据量增多时”代表复杂度与输入数据量有关,反映算法运行效率与输入数据量之间的关系; ‧“增长趋势”表示复杂度分析不关心算法具体使用了多少时间或占用了多少空间,而是给出一种“趋势性 常数阶的操作数量与输入数据大小 ? 无关,即不随着 ? 的变化而变化。 对于以下算法,无论操作数量 size 有多大,只要与数据大小 ? 无关,时间复杂度就仍为 ?(1) 。 // === File: time_complexity.js === /* 常数阶 */ function constant(n) { let count = 0; const size = 100000; for (let i = 0;0 码力 | 185 页 | 14.70 MB | 1 年前3
Hello 算法 1.0.0b1 Swift版理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评估的是算法运行效率随着输入数据量增多时的增长趋势。这句话有些拗口,我们可以将其分为三 个重点来理解: 2. 复杂度分析 hello‑algo.com 13 ‧“算法运行效率”可分为“运行时间”和“占用空间”,进而可将复杂度分为「时间复杂度 Time Complexity」 和「空间复杂度 Space Complexity」。 ‧“随着输入数据量增多时”代表复杂度与输入数据量有关,反映算法运行效率与输入数据量之间的关系; ‧“增长趋势”表示复杂度分析不关心算法具体使用了多少时间或占用了多少空间,而是给出一种“趋势性 常数阶的操作数量与输入数据大小 ? 无关,即不随着 ? 的变化而变化。 对于以下算法,无论操作数量 size 有多大,只要与数据大小 ? 无关,时间复杂度就仍为 ?(1) 。 // === File: time_complexity.swift === /* 常数阶 */ func constant(n: Int) -> Int { var count = 0 let size = 100_000 for _0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b1 Python版理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评估的是算法运行效率随着输入数据量增多时的增长趋势。这句话有些拗口,我们可以将其分为三 个重点来理解: 2. 复杂度分析 hello‑algo.com 13 ‧“算法运行效率”可分为“运行时间”和“占用空间”,进而可将复杂度分为「时间复杂度 Time Complexity」 和「空间复杂度 Space Complexity」。 ‧“随着输入数据量增多时”代表复杂度与输入数据量有关,反映算法运行效率与输入数据量之间的关系; ‧“增长趋势”表示复杂度分析不关心算法具体使用了多少时间或占用了多少空间,而是给出一种“趋势性 复杂度分析 hello‑algo.com 19 对于以下算法,无论操作数量 size 有多大,只要与数据大小 ? 无关,时间复杂度就仍为 ?(1) 。 # === File: time_complexity.py === def constant(n): """ 常数阶 """ count = 0 size = 100000 for _ in range(size): count +=0 码力 | 178 页 | 14.67 MB | 1 年前3
Hello 算法 1.0.0b1 TypeScript 版理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评估的是算法运行效率随着输入数据量增多时的增长趋势。这句话有些拗口,我们可以将其分为三 个重点来理解: 2. 复杂度分析 hello‑algo.com 13 ‧“算法运行效率”可分为“运行时间”和“占用空间”,进而可将复杂度分为「时间复杂度 Time Complexity」 和「空间复杂度 Space Complexity」。 ‧“随着输入数据量增多时”代表复杂度与输入数据量有关,反映算法运行效率与输入数据量之间的关系; ‧“增长趋势”表示复杂度分析不关心算法具体使用了多少时间或占用了多少空间,而是给出一种“趋势性 常数阶的操作数量与输入数据大小 ? 无关,即不随着 ? 的变化而变化。 对于以下算法,无论操作数量 size 有多大,只要与数据大小 ? 无关,时间复杂度就仍为 ?(1) 。 // === File: time_complexity.ts === /* 常数阶 */ function constant(n: number): number { let count = 0; const size = 100000;0 码力 | 186 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b1 C++版理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评估的是算法运行效率随着输入数据量增多时的增长趋势。这句话有些拗口,我们可以将其分为三 个重点来理解: 2. 复杂度分析 hello‑algo.com 13 ‧“算法运行效率”可分为“运行时间”和“占用空间”,进而可将复杂度分为「时间复杂度 Time Complexity」 和「空间复杂度 Space Complexity」。 ‧“随着输入数据量增多时”代表复杂度与输入数据量有关,反映算法运行效率与输入数据量之间的关系; ‧“增长趋势”表示复杂度分析不关心算法具体使用了多少时间或占用了多少空间,而是给出一种“趋势性 常数阶的操作数量与输入数据大小 ? 无关,即不随着 ? 的变化而变化。 对于以下算法,无论操作数量 size 有多大,只要与数据大小 ? 无关,时间复杂度就仍为 ?(1) 。 // === File: time_complexity.cpp === /* 常数阶 */ int constant(int n) { int count = 0; int size = 100000; for (int i = 0;0 码力 | 187 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b1 Golang版理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评估的是算法运行效率随着输入数据量增多时的增长趋势。这句话有些拗口,我们可以将其分为三 个重点来理解: 2. 复杂度分析 hello‑algo.com 13 ‧“算法运行效率”可分为“运行时间”和“占用空间”,进而可将复杂度分为「时间复杂度 Time Complexity」 和「空间复杂度 Space Complexity」。 ‧“随着输入数据量增多时”代表复杂度与输入数据量有关,反映算法运行效率与输入数据量之间的关系; ‧“增长趋势”表示复杂度分析不关心算法具体使用了多少时间或占用了多少空间,而是给出一种“趋势性 常数阶的操作数量与输入数据大小 ? 无关,即不随着 ? 的变化而变化。 对于以下算法,无论操作数量 size 有多大,只要与数据大小 ? 无关,时间复杂度就仍为 ?(1) 。 // === File: time_complexity.go === /* 常数阶 */ func constant(n int) int { count := 0 size := 100000 for i := 0; i < size;0 码力 | 190 页 | 14.71 MB | 1 年前3
共 141 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15













