3 11
关于网络的混杂模式

什么是网络的混杂模式

混杂模式(promiscuous mode)是指一台机器的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。

维基百科:一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序(即不验证MAC地址)。网卡的混杂模式一般在网络管理员分析网络数据作为网络故障诊断手段时用到,同时这个模式也被网络黑客利用来作为网络数据窃听的入口。

网卡具有如下的几种工作模式:

1 1
Go的Bit操作

原文地址:https://medium.com/learning-the-go-programming-language/bit-hacking-with-go-e0acee258827

本文是对原文的个人翻译,翻译不是很完善,能理解其中的思想即可。翻译原文的原因是之前参加公司的算法比赛,做题过程中我们在自身的程序做了较多的位运算操作,觉得比较有意思,于是根据原文翻译出下文内容 :)

在计算机正处于发展初期的阶段,内存和处理能力相对有限,于是为了避免这些昂贵的开销,人们一般都首选直接进行位操作的方式获取数据。直至今天,虽然计算机硬件飞速发展,内存和CPU的处理能力已经不是什么问题了,但位操作依然在一些情况(例如:底层系统编程、图像处理、密码加密解密等)中扮演重要的角色。

Go这门编程语言为我们提供了一些位运算符操作,如下:

12 11
用Go统计大文件小点滴

今天,团队里面的小伙伴说手头上有一些几个G以上的文件,需要统计文件里面的数据(文件里面的数据很简单都是Key:Value这样的组织形式)。然后咱俩随便抽了一个5G多的文件,用很普通的方式写了几行代码,流程是 读文件-->扫文件-->识别KV-->统计

然后程序跑了一趟,发现竟然要5分多钟。十分惊讶下,我想,明明很简单的逻辑的代码为什么要跑这么慢。然后我看了一下初版的代码,发现引起性能问题的几个点,分别是:

  • strconv的频繁使用
  • map[string]uint64形式的对象频繁调用
  • 为了识别KV,遍历文件时使用了 split 函数

下面是最开始的代码:

11 14
ATS缓存组件使用总结

一、简介

Apache Traffic Server基本可以用一句话概括:它不仅是HTTP代理服务器, 还是HTTP缓存服务器,且可以缓存任何字节流数据。

二、使用情况

由于是做电商,为了满足日常业务的发展,最初的nginx-proxycache的方式已经不能满足我们的大并发量而且大流量对象的缓存需要。这个时候我调研过squid、varnish等缓存代理,最后基于同行的使用报告和自己搭建使用一段时间后,最终我们就决定采用ATS作为缓存中心的核心层。具体的原因有以下几点:

前一页 后一页