-
自动驾驶-数据平台简介
在自动驾驶领域中, 数据平台是一个很重要的核心平台, 无论是算法的改进,还是 bug 的解决,场景的重现,以及程序的调试都需要数据平台提供的多维度数据来驱动。本文分析了两个比较完整的开源项目:Apollo Dreamview 和 Uber Streetscape,他们的设计思想并不完全相同,各有优缺点,我会通过三篇文章来介绍他们的这些不通点。数据平台工作流程自动驾驶汽车每天产生的数据量在 PB 级规模的,这对数据的处理和展示退出了更高的要求。所以数据平台一般来讲有:数据转换,数据上传,...…
-
NodeJS观察者模式库(observable-fns)
平时在开发过程中,经常会用到设计模式(Design pattern), 它是前人总结出的宝贵经验和经典实践。常用的设计模式有三类:创建型模式(工厂模式、单例模式、建造者模式)、结构型模式(装饰器模式、适配器模式、代理模式)、行为型模式(监听者模式、观察者模式)。本文介绍一种观察者模式的实现库:Observable-fns, 使用者可以快速在NodeJS环境下使用该模式进行消息分发和订阅。 前言 观察模式整体设计 广播消息 其他消息管理 总结前言Observable-fns是一...…
-
NodeJS多线程库Threads
NodeJS作为server端的运行环境,在低资源占用的情况下,处理高IO有很大的优势。然而对于密集型计算的任务却有些力不从心,虽然早已引入worker线程,但依然依然在使用上有诸多不便。本文介绍一种NodeJS三方库: ThreadsJS, 使用者可以快速使NodeJS具有复杂场景下密集计算的能力。 前言 Threads.js 整体设计 线程封装 工作线程封装函数: expose 主线程封装函数: spawn 线程间信息传递 ...…
-
NodeJS入门基础与线程模型
NodeJS作为一钟广泛使用的服务端运行环境,拥有大量的应用场景。NodeJS设计简单,并兼备高性能, 其设计思想具有很大借鉴意义,本文将介绍NodeJS涉及原理,科普相关知识。 前言 NodeJS的诞生 NodeJS的体系结构 V8引擎 Bindings layer Libuv NodeJS的多线程模型 总结前言NodeJs在不引入其他线程的情况下,可以实现高并发,尤其适用高IO场景。并兼容JavaScript, 前端工程师...…