自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 常见性能优化策略

对于经常接触高并发服务的同学来学,会经常涉及到性能优化,但是由于平时很少总结,内容会比较分散,这里简单做一些总结

2024-02-10 16:21:06 818

原创 记一次驻场开发协助优化

本次驻场主要任务1:协助解决排查性能问题2:排查隐患问题3:解决漏斗性能问题排查性能问题大部分集中在和mysql相关的调用,以及redis使用相关的问题,内存问题,sso问题等等。性能压测时具体遇到的问题如下1:mysql字段没做索引2:直接调用的接口包含很多数据和调用,其实不需要那么多数据和调用,重写接口,免去不必要的调用3:类型语句update`xxx`setjoin_status='Approved',latest_updated_user_id='...

2020-06-24 13:09:38 569

原创 互联网广告引擎之常用定向功能

一:地域定向:        1:功能简述和实现:        功能描述:地域定向是广告投放中常用的功能,如用户在投放界面设置了定向到北京,上海和深圳,那么该投放只能在北京,上海和深圳投放。        实现(显示广告):用户请求过来,通过socket拿到用户ip,然后从ip库中找到该ip属于哪个地域,如果符合定向(或非定向)条件,则可以投放。        实现(dsp):ssp会传递用户的...

2018-02-12 10:24:01 1273

原创 互联网广告之功能讲解

近几年来互联网广告以风起云涌之势迅速发展,尤其是ssp/ad exchange,dsp的迅速发展,各大互联网广告公司都在精准投放,dsp这一块花费了巨大的经历。广告有如下行为:show:广告显示click:广告点击track/纯显示/纯点击:广告监测,一般都是监测显示或者点击数量,因为作为广告主来所,他们会觉得你的显示或者点数数量不一定正确,这时候就自然出现了第三方监测公司。 顺便介绍一下互联网广...

2018-02-12 10:22:49 440

原创 互联网广告之精准定向

一:RT(重定向) 对于某个用户,如果a广告位下的x投放只要显示(点击)了,即可以显示b广告位下的y投放。即y投放显示的条件是x投放显示了或者点击了。重定向分为实时重定向和非实时重定向。 实时重定向有两种实现方式: 1:DE结合dataserver来实现,延迟一般都是ms级别的,即当x投放显示了之后,de向ds发送数据表明该用户可以显示y投放,当用户再次看b广告位的投放时...

2018-02-12 10:21:39 2164 1

原创 广告其他常用功能

一:均匀投放控制与强制投放背景:由于某些客户希望自己的广告能在一天当中的每个时间段均匀的显示出来,故而产生了均匀投放的需求。但是由于某些客户又希望在某个时间段不进行均匀投放控制,比如上午9点到11点,晚上8点到10点能投多少投多少,这就有了强制投放的概念。描述与实现均匀投放又分为两种情况:1:完全的均匀投放,即将投放量平均分配到1天的86400秒(实际上都会留一到两个小时作为补投),每一秒钟能投放...

2018-02-12 10:20:02 291

原创 广告系统架构

一个广告位下可以有多个投放,一个投放有多个config(多个投放时间段),一个投放对应一个banner group,一个banner group下有多个banner。3:如果步骤2中没有选择到广告,(或者网站上直接贴的是请求ssp/adx的代码,也可能是app嵌套的是ssp/adx的sdk),则向ssp/adx请求广告。广告主通过界面进行投放设置,投放设置将设置到数据库中,push程序从数据库中读取设置数据,并生成cache,将cache push到投放机供DE使用。

2018-02-12 10:18:39 5528

原创 adn/ssp/dsp/dmp相关杂谈

一:ssp/ad exchage/dsp最近一两年互联网广告在国内开始兴起了 供应方平台/广告交易平台 和需求方平台之间的交易。各大互联网巨头都相继推出了自己的广告交易平台,各大广告公司也相继推出了自己的ssp和dsp,以应付广告市场的变化。一般的交易方式是:1:网站贴上了ssp/exchange的代码2:用户通过浏览器访问到网页,触发js请求到ssp/exchagne3:ssp/exchang...

2018-02-12 10:16:58 1677 1

原创 重定向与动态创意(DPA/动态商品广告)

一:重定向重定向分实时重定向和非实时重定向。重定向的描述在互联网广告纸精准定向中已经介绍过了,不在多做介绍。重定向还有一个应用场景:比如你上京东看了某多个个牌子的笔记本(贴了监测代码,看了某个产品之后就会将标签发送到云端),然后在去看其他的网站的广告,如果是重定向的投放,并且设置的重定向标签是前面看过的笔记本的标签,那么你就可以看到某个牌子笔记本的投放二:动态创意动态创意中一般包含多个创意,比如你...

2018-02-12 10:15:58 467

原创 常见问题分析解决方案

一:线上问题排查比如server有进程出现core方法1:打开coredump,生成core文件,方便调试(也可拉倒线下调试)。方法2:安装tcpcopy,将线上流量导到线下机器进行进行调试。方法3:分析是否有多线程其中的部分线程退出导致其他线程出core等等比如线上流量很少,但是server却像处理不过来方法1:pstack查看进程都在干什么,阻塞在哪里,并对照代码分析。方法2:查看网络tcp状...

2018-02-12 10:13:35 2037 1

原创 广告索引 简述

一:广告索引a:广告定向比较古老的方式就是循环遍历各个定向条件,看是否满足定向条件。(这种方式只能在原始的广告投放引擎中适应,因为有广告位的概念,且每个广告位下的投放也不会很多,一旦很多投放,则这种方式会导致效率直线下降。)b:广告索引的思路则完全不一样(主要是从dsp兴起之后才开始出现这种方式,因为dsp没有广告位的概念,每个dsp有成千上万个投放,如果每个投放都去遍历,肯定达不到想要的效率):...

2018-02-12 10:12:43 1388 1

原创 adx、dsp系统点击/显示监测

系统中通常会有多个显示监测地址,在pc端显示监测数据差异在5%以内属于正常情况,在移动端显示监测数据则可能达到10%的差异。系统中至少有adx和dsp的点击监测地址,广告交易系统中的多个点击监测通常是通过多次跳转来完成的,比如点击先请求adx的监测服务器,然后再请求dsp的点击监测服务器,最后跳转到落地页。(其中可能还有跳转到第三方监测)每一次点击跳转肯定都有5%到10%的跳失率,所以点击最好不要...

2018-02-12 10:11:29 1001

原创 广告投放系统网络基础架构简要描述

总结:这样的一套服务器框架和异步调用框架,设计的初衷就是高性能,设计好的话,肯定不会比任何大公司的框架慢,至少是行业领先的框架。b:当handle线程需要做invoke操作时,会先将数据发送到队列,io线程从队列取数据,将数据发送出去之后,只是发送出去,不需要返回,则发送则完毕,如果需要invoke的返回,则在io线程中设置对该套接字的读监听,一旦服务端有消息回来,则会被io线程接收到,协议解析之后进行,会将数据发到之前的handle线程,进行相应的回调处理。d:设计定时器,支持超时处理。

2018-02-12 10:10:15 3114 1

原创 adx、dsp中动态通路与静态通路

动态通路和静态通路在部分dsp协议中并没有明显的提到(百度bes描述为Static、HTML Snippet),有的adx两种方式都支持,有的只支持一种。比如百度的adx(bes)pc支持动态和静态通路,移动只支持静态通路。(目前bes只支持静态的了)一:静态通路1:静态通路一般都需要dsp在adx后台设置winnotice地址和点击监测地址,其中包括一些宏,至少有EXT宏。2:dsp需要将投放的...

2018-02-12 10:08:41 899 1

原创 移动广告

1:传统移动投放广告移动广告一般来说分为两部分,一部分是移动浏览器,还有一部分是移动app。移动浏览器和pc浏览器比较相似,支持标准的http协议,所以移动web广告基本和pc差不多。移动app广告一般由广告公司提供各个平台(安卓,ios,windows phone)的sdk,由app开发找嵌入sdk,当app用户下载app之后,内嵌的sdk会根据情况去请求广告投放引擎等服务,然后返回广告到app...

2018-02-12 10:05:19 361

原创 广告效果指标

1:点击率,广告点击次数除以显示次数,英文简称ctr,在排除作弊的情况下ctr越高,广告效果越好2:广告产生的购买,注册都算效果指标3:roi,投资回报率,比如你投放1000块做广告,如果你的收益是2000块,可以简单说你的roi是200%,但是收益是一个比较难计算的问题,比如做广告之前的收益和做广告之后的收益,还有你做广告带来的宣传效果,并不一定能够直接计算出来价值。4:还有人说广告价格越贵效果...

2018-02-12 10:02:37 1110

原创 广告投放设置reload与文件同步服务

投放设置可以存储为文件,也可以存储在数据库中,如果存储在文件中,当投放设置改变时需要重新reload投放设置。一:投放设置reload方案在后台服务程序中,比如是c++程序,投放设置会被定义为一个对象,当投放设置被改变时,需要创建一个新的对象,但是问题是什么时候释之前的这个对象,因为之前的对象可能还有某个线程在使用,还有如果投放设置一直在修改,那就可能有多个之前的对象。解决reload有两种方式:...

2018-02-12 09:59:23 290

原创 广告投放中cpm,cpc,金额预算控制

一个广告用户可能希望每天投放500个cpm,或者500个点击,或者500块钱。如果我们投放缺量了,比如只有400个cpm,那么,我们就不能按照用户的要求完成用户的投放,我们就需要告诉用户为什么只投放了400个cpm,如果我们投放了600个cpm,那么超过的量就需要我们自己买单。这种场景最初是在广告投放引擎中出现,而且超量问题一直是一个麻烦的问题,某一行代码逻辑不够严谨都可能导致超量问题。假如我们投...

2018-02-12 09:57:38 9459 3

转载 互联网的SEDA高并发架构

适于互联网的SEDA高并发架构一、前言   最近看了一篇博士毕业论文(Matthew David Welsh--An Architecture for Highly Concurrent, Well-Conditioned Internet Services),于是将主要思想写了出来,旨在传播别人的思想,这篇论文探讨一种使用于Intern

2015-01-09 15:33:47 4174

原创 makefile实战

一:简单makefile编写 二:多目录makefile编写

2014-04-18 18:32:16 617

转载 指针常见问题

1. 常指针与常量的指针        char * const p;  char const * p  const char *p  上述三个有什么区别?  char * const p;   //p为只读指针。  char const * p;//p值只读的指针。  const char *p; //和char const *p-----------------

2014-03-07 10:06:27 858

原创 linux进程间通讯的方法

进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), socket.管道包括三种:1)普通管道PIPE, 通常有种限制,一是半双工,只能单向传输;二是只能在父子进程间使用. 2)流管道s_pipe: 去除了第一种限制,可以双向传输. 3)命名管道:name_pipe, 去除了第二种限制,可以在许多并不相关的进程之间进行通讯.管道: 优点是所有的UNIX实现都支持

2013-09-18 11:54:22 572

转载 linux多线程同步

1临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2互斥量:为协调共同对一个共享资源的单独访问而设计的。3信号量:为控制一个具有有限数量用户资源而设计。4事件:用来通知线程有一些事件已发生,从而启动后继任务的开始。线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互

2013-09-18 11:24:48 1236

转载 性能检测工具

valgrind - callgrind      callgrind  官方文档简单使用流程,以测试DE为例:启动:valgrind --tool=callgrind --instr-atstart=no --callgrind-out-file=/tmp/callgrind.out /usr/local/apache2/bin/httpd -X参数说明:--instr-at

2013-09-12 16:19:30 1073

转载 valgrind tool suite

Memecheck            内存检测工具,检测可能发生的内存泄漏            简单使用说明:                  valgrind  --log-file=/tmp/valgrind.log.%p --trace-children=yes  --leak-check=full --error-limit=no  /usr/local/apache2

2013-09-05 17:42:14 775

原创 网络编程面试题答案收集(从论坛转到博客)

网络编程面试题答案收集(从坛转到博客,答案基本都是自己的一些经验以及收集整理)1:tcp和udp的区别2:流量控制和拥塞控制的实现机制3:滑动窗口的实现机制4:多线程如何同步。5:进程间通讯的方式有哪些,各有什么优缺点6:tcp连接建立的时候3次握手的具体过程,以及其中的每一步是为什么7:tcp断开连接的具体过程,其中每一步是为什么那么做8:tcp建立连接和断开连接

2012-08-12 18:25:15 1194

转载 linux动态库与静态库的区别

引言通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件 (object file)与牵涉到的函数库(library)被链接合成一个可执行文件 (executable file)。程序 在运行 时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件 名为“libxxx.

2012-08-12 18:02:17 358

原创 多线程与多进程的区别

引入进程和线程的目的是为了提高效率或者解决高并发的问题,像主流的httpd server ,apache以及nginx都是使用的多进程多线程。 1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。两者都可以提高程序的并发度

2012-08-12 17:53:26 458

转载 多进程与多线程

一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()到底的代码的人,那么或多或少你会遇到代码响应不够用的情况,也应该有尝过并发编程的甜头。就像一个快餐点的服务员,既要在前台接待客户点餐,又要接电话送外卖,没有分身术肯定会忙得你焦头烂额的。

2012-08-12 17:32:03 460

protobuf转换为json

protobuf转换为json,原版中存在bug,使用时候修复了原版的bug

2014-09-23

C++ 经典笔试面试题

C++ C++ 经典笔试面试题,够经典!够齐全!

2008-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除