加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 创业 > 正文

限流中的漏桶和令牌桶算法

发布时间:2021-02-07 17:41:41 所属栏目:创业 来源:互联网
导读:你可以看到,访问的方式跳跃式的,而不是顺序的,那么如果 N 的数值很大,那么操作 array[j][i] 时,是没办法把 array[j+1][i] 也读入到 CPU Cache 中的,既然 array[j+1][i] 没有读取到 CPU Cache,那么就需要从内存读取该数据元素了。很明显,这种不连续性

你可以看到,访问的方式跳跃式的,而不是顺序的,那么如果 N 的数值很大,那么操作 array[j][i] 时,是没办法把 array[j+1][i] 也读入到 CPU Cache 中的,既然 array[j+1][i] 没有读取到 CPU Cache,那么就需要从内存读取该数据元素了。很明显,这种不连续性、跳跃式访问数据元素的方式,可能不能充分利用到了 CPU Cache 的特性,从而代码的性能不高。

那访问 array[0][0] 元素时,CPU 具体会一次从内存中加载多少元素到 CPU Cache 呢?这个问题,在前面我们也提到过,这跟 CPU Cache Line 有关,它表示 CPU Cache 一次性能加载数据的大小,可以在 Linux 里通过 coherency_line_size 配置查看 它的大小,通常是 64 个字节。
 

在典型的项目中,需要相当快地使用一些外部库。许多程序员几乎自动安装一些库,因为它们在每个项目中都使用。

外部库之所以很棒,是因为它们用行之有效的方法解决反复出现的问题。然而,初级开发人员通常不了解他们正在使用的库,最终将一个库堆叠在另一个库上,或者重新实现一些现有功能。

对于现代web开发,最常见的误解可能是在每个React项目中都使用Redux。尽管Redux有一些用例,但在大多数小项目中,使用React就足够了。

每次在项目中安装库时,请阅读或者浏览文档。检查可以使用的方法和属性,确保你了解库可以解决哪些问题,哪些问题需要不同的工具。这样你就可以为工作选择合适的工具,并证明你的选择是正确的。

避开这些新手陷阱,能让你的面试入选率大幅提升。
 

没有错误处理

几乎不可能构建任何有意义且总能完美地运行的应用程序。无论是将数据放入数据库还是进行API调用,都会发生错误。未经处理的错误不仅会阻止单个函数的执行,甚至会使整个应用程序崩溃。

对可能出现的错误的预期是一个称职程序员的标志。只要在访问或更新一些外部数据,就必须为最坏的情况做好准备。处理潜在的错误可以使你的应用程序更强大,同时也使未来的开发人员(可能是你自己)快速发现错误。这向招聘者展示了你对代码的整体考虑。

缺乏一致性

一致性是优秀软件的标志。它使代码更易于阅读和维护。统一的代码更容易预测,也更容易推理,所以你应该尽可能地做到这一点。在更高级别的抽象机制上,一致性很难实现。掌握它需要很多年,你应该尽早开始学习。

记住,只用一种语言来命名事物。通常是英语,但在个人项目中,你可以用任何想要的语言命名变量和函数,只要保证它一直是同一种语言即可。

如果你使用的是制表符或空格都没关系,只要保持一致的即可。因为使用骆驼案或蛇案都是一样的。这两个都很棒,但你得选一个。你需要创建或选择一个风格指南并一直坚持使用下去。你也应该使用像Prettier这样的工具,这是专业环境中的一个标准,这使保持一致的代码格式易于管理。

无论使用什么工具和风格,都要让它们成为你的第二天性。即使是错误千篇一律的代码通常也比不一致的正确代码好,因为它更容易修复。

缺乏对工具的了解

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读