如何精确统计页面停留时长

1.背景 页面停留时间(Time on Page)简称 Tp,是网站分析中很常见的一个指标,用于反映用户在某些页面上停留时间的长短,传统的Tp统计方法会存在一定的统计盲区,比如无法监控单页应用,没有考虑用户切换Tab、最小化窗口等操作场景。 基于上述背景,重新调研和实现了精确统计页面停留时长的方案,需要 兼容单页应用和多页应用,并且不耦合或入侵业务代码。 2.分析 我们可以把一个页面生命周期抽象为三个动作: 「进入」、「活跃状态切换」、「离开」 如下图,计算页面停留

英文标签的精准翻译

本文主要讲解了自己在工作中,对图库里面的英文标签翻译成中文标签,所遇到的一些问题和解决方案。 一. 问题的背景及来源 业务背景 东方IC(现在是头条的子公司)是一家图片版权售卖网站,致力于保护与传播第三方或者个人优质的图片资源,快速展示并推荐给需求方,促进图片资源在网络上快速生产、传播与使用。东方IC版权资源有几千万的高品质的编辑类和创意类图片,现在不限于服务于像头条号、商业化、问答这些大的业务线,也欢迎其他的业务接入东方IC的资源库,获取海量高品质的图片,扩展业务的维

基于图像搜索引擎的图文无关识别方法

一、摘要 目前互联网知识问答社区正在蓬勃发展,例如国外的quora,国内的悟空问答、知乎。一般来说,在这些知识问答社区,答案排序算法会预测用户对于不同答案的偏好进行排序,其排序模型往往会考虑答案在一段时间内的点击率、点赞率、分享率、用户平均阅读时间等进行排序。大部分情况下,这样的排序算法是比较有效的,也能筛选出符合用户需求的答案。 但有时候这样的算法也会被一些内容迷惑,比如有一些答案放了一些比较博眼球的内涵图片,吸引了大量用户的点击和点赞,但是并没有提供更多有价值的信息,这

如何深入Python虚拟机追查HTTP服务core dump导致502的问题

概述 今日头条目前大部分 Python 的 HTTP 服务都是用 uWSGI 托管 Python 多进程的 Django 或者 Flask 框架的 App。而多进程模型就会有进程间通信的问题,对此 uWSGI 提供了 spooler 功能用于让不同 worker 进程把数据通过共享内存传给单独进程以集中进行处理的功能。但是 uWSGI 的 Python C 扩展实现有 bug,对 Python tuple 对象的引用计数处理是错误的,会在多线程环境下有小概率导致进程崩溃,从

干货|今日头条iOS端安装包大小优化—思路与实践

前言 自2016年8月至2017年10月,今日头条iOS端已经进行了3轮安装包大小优化。 2016.08-2016.10第一期优化78MB -> 42MB (1)删除Swift代码,从混编改为纯OC编程 (2)无用资源文件清理 (3)工具类、工具方法合并 (4)编译选项优化 2017.05-2017.07 第二期优化 优化3MB (1)无用资源文件清理 (2)无用类清理,无用第三方库清理 (3)C++ pb库改为light版本 (4)Today Extension改

Node 错误处理之挖坑系列

前段时间要在项目中加上日志的上报,顺势了解了下怎么在node中完善错误信息的收集。 01 Error  JS 中的 Error 对象,包含了错误的具体信息,包括 name、message、错误堆栈 stack 等。可以以 new Error 方式创建实例抛出,或调用 Error.captureStackTrace 为已有对象添加 stack 错误堆栈信息 而后抛出。 02 错误抛出几种方式 Throw:Javascript 抛出的异常,是以 throw 方法抛出,

cephfs内核客户端性能追踪

问题描述 测试cephfs内核客户端的吞吐性能,direct写时单个客户端性能有上限,只能接近150 mb/s: 查看网卡流量,并没有打满: 查看集群负载也很低,osd磁盘很空闲,验证多台机器同时并发测试,总吞吐可以上去,怀疑单个客户端的上限有瓶颈。 源码分析 集群没有打满,网络也不是瓶颈,那么只能从内核客户端cephfs的写IO入手,寻找问题的根源。 cephfs内核客户端写IO的代码在文件fs/ceph/file.c: 从代码实现看,主要流程是ne

node中Session持久化与Redis缓存

IC图片目前的管理系统(搜索质量评估、电销、云平台、性能监控、账号体系、图片爬虫)都是基于node前后端全栈开发,数据存储也用到mongodb、mysql、redis,本文简单描述一下HTTP协议、cookie、session、以及node项目中如何引入redis做session持久化。 HTTP协议和TCP/IP协议组中其它协议相同,用于客户端和服务器端之间的通信,HTTP是一种无状态协议,及协议本身不保存客户端和服务端的通信状态,也就是说在HTTP这个级别,协议不会对请

NODEJS--HTTP实现分析

1.前言 目前,HTTP协议是互联网上应用最为广泛的一种网络协议,也是前端er接触最多的一种协议。通过阅读http模块在nodejs中的实现,能够更深入的了解HTTP协议。HTTP协议是基于TCP协议之上的应用层协议,它的实现离不开TCP/IP协议族。而具体到代码实现,http模块依赖于net模块。 如下图所示:在nodejs中,http通过net模块传输数据,得到数据之后依靠HTTP_PARSER对数据进行解析。 2.源码 启动一个HTTP服务 nodejs

Android自定义ClassLoader耗时问题追查

最近在优化西瓜视频客户端冷启动速度时,发现在关闭插件 ClassLoader 注入的情况下,启动速度提升了300ms左右,但是西瓜在启动阶段并没有使用到插件,那么这么大的耗时是怎么来的呢? 猜原因 首先看下西瓜目前使用的插件 ClassLoader 是怎么注入的,大致代码如下: 代码大致意思是在 PathClassLoader 和 BootClassLoader 之间插入了一个 DelegateClassLoader,而在 DelegateClassLoader 的