上药三品,神与气精

曾因酒醉鞭名马 生怕情多累美人


  • 首页

  • 关于

  • 分类

  • 标签

  • 归档

  • 搜索

python3合并多个字典

发表于 2019-04-11 | 分类于 python | 阅读次数:
字数统计: 47 | 阅读时长 ≈ 1
1
2
3
4
5
6
7
8
9

from collections import Counter

a = {'x': 1, 'z': 3}
b = {'y': 2, 'z': 4}
d = {'x': 1, 'z': 5}

c = sum(map(Counter, [a, b, d]), Counter())
print(dict(c))

python2合并多个字典

发表于 2019-04-11 | 分类于 python | 阅读次数:
字数统计: 65 | 阅读时长 ≈ 1
1
2
3
4
5
6
7
8
9
10
11

def union_dict(*objs):
_keys = set(sum([obj.keys() for obj in objs],[]))
_total = {}
for _key in _keys:
_total[_key] = sum([obj.get(_key,0) for obj in objs])
return _total

obj1 = {'a':1,'b':2,'c':3}
obj2 = {'a':1,'b':3,'d':4}
print union_dict(obj1,obj2)

leetcode-lfu-cache

发表于 2019-04-10 | 分类于 leetcode | 阅读次数:
字数统计: 187 | 阅读时长 ≈ 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

import collections
import functools
from itertools import filterfalse
from heapq import nsmallest
from operator import itemgetter


class Counter(dict):

def __missing__(self, key):
return 0


def lfu_cache(maxsize=100):

def decorating_function(user_function):
cache = {} # mapping of args to results
use_count = Counter() # times each key has been accessed
kwd_mark = object() # separate positional and keyword args

@functools.wraps(user_function)
def wrapper(*args, **kwds):
key = args
if kwds:
key += (kwd_mark,) + tuple(sorted(kwds.items()))
use_count[key] += 1

# get cache entry or compute if not found
try:
result = cache[key]
wrapper.hits += 1
except KeyError:
result = user_function(*args, **kwds)
cache[key] = result
wrapper.misses += 1

# purge least frequently used cache entry
if len(cache) > maxsize:
for key, _ in nsmallest(maxsize // 10,
use_count.items(),
key=itemgetter(1)):
del cache[key], use_count[key]

return result

def clear():
cache.clear()
use_count.clear()
wrapper.hits = wrapper.misses = 0

wrapper.hits = wrapper.misses = 0
wrapper.clear = clear
return wrapper
return decorating_function


if __name__ == '__main__':

@lfu_cache(maxsize=20)
def f(x, y):
return 3 * x + y

domain = range(5)
from random import choice
for i in range(1000):
r = f(choice(domain), choice(domain))

print(f.hits, f.misses)

web监控

发表于 2019-04-10 | 阅读次数:
字数统计: 299 | 阅读时长 ≈ 1

Web 应用程序在执行时,监控工具收集分析并显示其相关信息,每个有问题的应用程序都有网络堆栈。通过监控工具提供的堆栈信息,开发和运营团队能够响应并解决问题。

收集和分析生产环境的数据在保持稳定性,维持高性能方面是十分重要的,尤其对错误的 Web 应用程序进行优化很有必要。

监控和​​日志的区别
监控和日志都旨在帮助应用程序诊断问题,在调试过程中他们的目的非常相似。唯一的差别是,日志数据只会根据明确的事件而进行记录,而监控数据则集合数据背景进行分析。

例如,当错误发生时,该事件被记录在日志中。同时,监控应用的代码还要收集数据,不仅是异常 log,还包括函数的性能数据。

其实,俩两者之间的区别也不是那么明显,毕竟解决问题不是只有一条路径。只要对 Web 生产应用程序有用都是可以用的。

分布式学习001

发表于 2019-04-09 | 分类于 distribute | 阅读次数:
字数统计: 226 | 阅读时长 ≈ 1

分布式 目的 增大系统容量 提高系统的可用性

  1. 大流量处理
  2. 关键业务保护
  • 提高架构的吞吐量 服务更多的并发和流量
  • 提高系统的稳定性 让系统的可用性更高

  • 加缓存
  • 负载均衡
  • 异步调用
  • 数据镜像
  • 数据分区
  • 服务拆分
  • 服务冗余
  • 限流降级
  • 高可用架构
  • 高可用运维

  • 服务治理
  • 架构软件管理
  • devops
  • 自动化运维
  • 资源调度管理
  • 整体架构监控
  • 流量控制

全栈系统监控; 服务 / 资源调度; 流量调度; 状态 /数据调度

开发和运维的自动化


分布式的优势

  • 模块化 系统模块重用度更高
  • 开发和发布速度更快
  • 系统协作性更高
  • 团队协作改善

任何技术方案 都是 “按下葫芦浮起瓢” trade-off

1…202122…109
John Cheung

John Cheung

improve your python skills

543 日志
33 分类
45 标签
RSS
GitHub Email
© 2020 John Cheung
本站访客数:
|
主题 — NexT.Pisces v5.1.4
博客全站共226.3k字