SPU解析优化:模块设计与实现,SKU优化
什么是 SPU?
SPU(Standard Product Unit):标准化产品单元,是商品信息聚合的最小单位。是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。
通俗点讲,属性值、特性相同的商品就可以称为一个SPU。
SPU 解析优化
不兼容,但是可以互转
业务转架构难,架构转业务容易
SPU
比如我要查“黑鸭”关键字,条件是score>0.2,我要你返回它的id,我们要实现它。
你需要设计一个倒排索引就可以了。
设计
- json文件
- TextReader: 读取 json,解析json,提取关键字
- KeywordStore: 存储关键字
- service: 对接 service 接口
key 是可以重复的,如果 key 不能重复,要倒排索引有何用…
SpuBean.java
KeyWordStore.java (interface)
ConditionBean.java
多个条件查询
score>0.1 and (opt=0 or xx=1) // 类似于这种的多条件查询
写一个测试应该好懂一些:将两个and关系拼在一起作为一个List,包在ConditionBean里面。
前端解析之后,给我的就应该已经是这样的一个参数了。
ITextReader.java
作用:读取 json,解析json,提取关键字
- 一行一行读就行
- 返回json字符串
写框架标准模版:init,close,start
测试用例(先跑过测试用例,再提交代码)
优化:增加缓冲区大小
弊端:内存消耗大,增加gc次数
为什么需要缓冲区?
FileTextReader.java,读文件
使用 FileChannel 优化
上面图中的readline()
方法代码如下:
优化之后,读文件的时间从 28s 优化成 1s,那他为什么会变快呢?
优化前,使用buffered,需要经过各种copy
优化后
em…
IJSONParser.java
IKeyWordStore.java
KeywordEngine.java
优化:添加线程池
计时器 StopWatch.java
优化
SPU解析优化:模块设计与实现,SKU优化相关推荐
- 深入解析 Raft 模块在 KaiwuDB 中的优化改造(下)
导读 KaiwuDB 是由浪潮开源的一款 NewSQL 分布式数据库,具备 HTAP 特性,拥有强一致.高可用的分布式架构.其中,KaiwuDB 各方面的强一致性都依靠 Raft 算法实现.我们在上一 ...
- 如何为MAXM22511隔离式RS-485收发器模块设计和布局EMI优化的PCB
简介 本文介绍了MAXM22511隔离式RS-485/RS-422,全双工收发器模块,为数据和电源通道提供完整的隔离解决方案,提供2500V有效值(60s)电缆侧(RS-485/RS-422驱动器/接 ...
- ensp大型网络环境设计与实现_mongodb内核源码设计实现、性能优化、最佳运维系列-网络传输层模块源码实现三...
1. 说明 在之前的<<Mongodb网络传输处理源码实现及性能调优-体验内核性能极致设计>>和<<mongodb内核源码设计实现.性能优化.最佳运维系列-tran ...
- linux内核设计与实现 epub_mongodb内核源码设计实现、性能优化、最佳运维系列-网络传输层模块源码实现四...
1. 说明 本文分析网络传输层模块中的最后一个子模块:service_executor服务运行子模块,即线程模型子模块.在阅读该文章前,请提前阅读下<<Mongodb网络传输处理源码实现及 ...
- sku设计mysql_商品SKU功能设计与优化
原来的商品SKU设计存在着两个问题,一个是SKU表设计上面比较固化,无法扩展.另一个是当修改了商品信息之后,商品SKU的ID会发生变化,由于购物车表和订单商品表都关联了商品SKU的ID,这样就会导致匹 ...
- Tomcat 架构原理解析到架构设计借鉴
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...
- 腾讯云低延时直播系统架构设计与弱网优化实践
"直播带货"可能是2020年最具代表性的词汇之一,那么传统电商该如何融合直播系统,直播过程如何保障用户的最佳观看体验?本文由腾讯云资深架构师何书照在LiveVideoStack线上 ...
- C++ 开发者怒了:这个无用的模块设计最终会害死 C++!
2018 年年底,C++ 标准委员会历史上规模最大的一次会议在美国 San Diego 召开,讨论了哪些特性要加入到 C++20 中.其中,Modules 便是可能进入 C++ 20 的一大重要特性: ...
- jQuery技术内幕:深入解析jQuery架构设计与实现原理1
jQuery技术内幕:深入解析jQuery架构设计与实现原理 高 云 著 图书在版编目(CIP)数据 jQuery技术内幕:深入解析jQuery架构设计与实现原理 / 高云著. -北京:机械工业出版社 ...
最新文章
- python 实现结构树模式显示目录下文件
- jquery easyui datagrid 显示外键/子属性/二层属性的值的方法
- 使用countup.js使数字动态叠加
- [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比
- Expression Template(表达式模板,ET)
- JavaScript对象中的this属性
- 测量仪图片_介绍一款电线电缆检测智能影像测量仪
- ArcGIS Pro地理配准
- python设置散点图点的大小_python_matplotlib分别使用plot()和scatter()画散点图,以及如何改变点的大小...
- MOS管的finger和multiplier
- ZYNQ PS GPIO MIO 基础知识
- 量子计算数学基础,pauli 矩阵
- html中怎样变单独英文月份,【Web前端问题】js中,如何将日期中的月份转化为英文显示?...
- 智慧书-永恒的处世经典格言:241-280
- git merge\git merge --no-commit\git merge --squash区别
- postman 设置请求编码_Postman教程——细说请求
- 所有努力让生活变得更好的路,没有一步是白走的
- i7 7700hq安装Linux,翻出了自己吃灰的IfunkS i7-7700HQ笔记本 装了个ubuntu跑个分
- win7安装IIS教程 win7安装IIS 教程win7 安装IIS教程
- 右键文件夹用某个软件打开
热门文章
- 蓝桥杯 - 翻硬币(贪心)
- HDU - 5017 Ellipsoid(三分套三分/模拟退火)
- vb编程软件_原创经验,如何安装vb编程软件
- edit plus 中文插件_iMindMap手绘思维导图软件中文版
- linux基础命令chown,Linux常用命令及组件:chown和chmod
- 逆向工程核心原理读书笔记-API钩取之隐藏进程(二)
- 《openssl 编程》之文本数据库
- Windows 平台编译 WebRTC
- C语言程序设计 | 整型、浮点型在内存中的存储方式
- 斐波那契数拓展问题:leetcode-70 爬楼梯问题 leetcode-1137 泰波那契数问题解法