天天动听今日升级提醒,发现有一句
“使用新的MP3解码器,性能提升50%”,太惊讶了。
之前版本的MP3解码器使用libmpg123,效果已经是MP3解码器中非常不错的了。
50%的提升,应该不仅仅是优化这么简单,莫非使用的新的MP3解码器?

当前安卓版天天动听是7.3.1 和 上一个稳定版 7.2.1,下载后比较一下。
 
版本7.2.1仍然还是libmpg123解码器。
[gongyuliang@linux armeabi]$ pwd
/home/gongyuliang/newversion/ttpod_android_v7.2.1/lib/armeabi
[gongyuliang@linux armeabi]$ nm -D libmp3decplugin.so
***************************************
000103c0 T mpg123_add_string
000102e4 T mpg123_add_substring
000104a4 T mpg123_chomp_string
0000eedc T mpg123_clip
0000fc80 T mpg123_close
T mpg123_copy_string
0000ba88 T mpg123_current_decoder
0000ed00 T mpg123_decode
0000eb54 T mpg123_decode_frame
0001b120 T mpg123_decode_frame_32
0000dcb4 T mpg123_decoder
0000bab0 T mpg123_decoders
0000fe54 T mpg123_delete
T mpg123_delete_pars
0000fb7c T mpg123_enc_from_id3
0000a718 T mpg123_encodings
0000a744 T mpg123_encsize
0000e2d0 T mpg123_eq
0000ff28 T mpg123_errcode
0000dbf4 T mpg123_exit
0001b0ec T mpg123_feature
0000ec88 T mpg123_feed
0000f14c T mpg123_feedseek
0001b13c T mpg123_feedseek_32
0000ac28 T mpg123_fmt
0000aae8 T mpg123_fmt_all
0000aa28 T mpg123_fmt_none
0000ae20 T mpg123_fmt_support
0000ade4 T mpg123_format
0000abec T mpg123_format_all
0000aaac T mpg123_format_none
0000af0c T mpg123_format_support
0000e9e4 T mpg123_framebyframe_decode
0001b124 T mpg123_framebyframe_decode_32
0000eae8 T mpg123_framebyframe_next
000091cc T mpg123_framedata
0000a350 T mpg123_framepos
0001b128 T mpg123_framepos_32
000101e0 T mpg123_free_string
0000e3b8 T mpg123_geteq
0000eefc T mpg123_getformat
0000dff8 T mpg123_getpar
0000e1d0 T mpg123_getparam
0000e20c T mpg123_getstate
0000a2a0 T mpg123_getvolume
T mpg123_grow_string
0000fb08 T mpg123_icy
0000fb74 T mpg123_icy2utf8
0000fa78 T mpg123_id3
0000fba0 T mpg123_index
0001b148 T mpg123_index_32
T mpg123_info
0000dbb8 T mpg123_init
000101cc T mpg123_init_string
0000f4d0 T mpg123_length
0001b154 T mpg123_length_32
0000fa50 T mpg123_meta_check
0000fa64 T mpg123_meta_free
0000dca0 T mpg123_new
000088c8 T mpg123_new_pars
0000fe24 T mpg123_open
0001b114 T mpg123_open_32
0000fdf4 T mpg123_open_fd
0001b118 T mpg123_open_fd_32
0000fd80 T mpg123_open_feed
0000fda4 T mpg123_open_handle
0001b11c T mpg123_open_handle_32
0000e9c4 T mpg123_outblock
0000dd88 T mpg123_par
0000df48 T mpg123_param
0000dbf8 T mpg123_parnew
0000fe7c T mpg123_plain_strerror
T mpg123_position
0001b150 T mpg123_position_32
0000a6f0 T mpg123_rates
0000eeb0 T mpg123_read
00008ac8 T mpg123_replace_buffer
0000fd40 T mpg123_replace_reader
0001b15c T mpg123_replace_reader_32
0000fcf0 T mpg123_replace_reader_handle
0001b160 T mpg123_replace_reader_handle_32
T mpg123_reset_eq
T mpg123_resize_string
0000e9bc T mpg123_safe_buffer
0000f698 T mpg123_scan
0000f880 T mpg123_seek
0001b138 T mpg123_seek_32
0000f3c8 T mpg123_seek_frame
0001b140 T mpg123_seek_frame_32
0000f4b0 T mpg123_set_filesize
0001b158 T mpg123_set_filesize_32
0000fc1c T mpg123_set_index
0001b14c T mpg123_set_index_32
T mpg123_set_string
000103ec T mpg123_set_substring
T mpg123_spf
0000ff40 T mpg123_strerror
0001040c T mpg123_strlen
0000bac0 T mpg123_supported_decoders
0000eff4 T mpg123_tell
0001b12c T mpg123_tell_32
0000f120 T mpg123_tell_stream
0001b134 T mpg123_tell_stream_32
0000f0c0 T mpg123_tellframe
0001b130 T mpg123_tellframe_32
0000ef98 T mpg123_timeframe
0001b144 T mpg123_timeframe_32
T mpg123_tpf
0000a230 T mpg123_volume
0000a278 T mpg123_volume_change
***************************************

然而版本7.3.1解码器换成了ttMP3Dec*,具体细节未知,有空去考察一下,有知道的朋友希望能交流一下。

[gongyuliang@linux armeabi]$ pwd

/home/gongyuliang/newversion/TTPod-Android-v7..1_H3/lib/armeabi

[gongyuliang@linux armeabi]$ nm -D libmp3decplugin.so

***************************************

00003cd0 T ttGetMP3DECAPII

00003f20 T ttMP3DecBits_Crc

0000e07c R ttMP3DecBrTab

00003f00 T ttMP3DecCalcBitsUsed

 T ttMP3DecDCT32

00003d5c T ttMP3DecGetBits

0000434c T ttMP3DecHeaderDecode

000042ec T ttMP3DecHeaderSync

00003d48 T ttMP3DecInitBits

000072b8 T ttMP3DecLayerI

 T ttMP3DecLayerII

 T ttMP3DecLayerIII

0000fef0 R ttMP3DecRqTab

00003e78 T ttMP3DecSkipBits

0000e18c R ttMP3DecSrTab

000040d4 T ttMP3DecStreamInit

00007ffc T ttMP3DecSubbandFrame

00008d2c T ttMP3DecSynthMono

00008f28 T ttMP3DecSynthStereo

000089e0 T ttMP3Decidct9

***************************************

天天动听MP3解码器性能提升50%的更多相关文章

  1. php 性能优化之opcache - 让你的php性能提升 50%

    性能提升原理:减少文件解析的时间. 我们都知道,程序要运行,得有一个编译或者解析的过程,编译或解析之后的代码才是机器可以运行的. 而 php 是一种解析性语言,在使用php来处理http请求的时候,每 ...

  2. 播放器音乐源之天天动听API

    搜索歌曲API:http://so.ard.iyyin.com/s/song_with_out?q={0}&page={1}&size={2} {0}=需要搜索的歌曲或歌手 {1}=查 ...

  3. 天天动听API

    本次分析的是天天动听API,天天动听有一点比较好,就是搜索返回直接有歌曲播放的地址了,并且有无损的音频 搜索歌曲API:http://so.ard.iyyin.com/s/song_with_out? ...

  4. 揭秘Sql2014新特性-tempdb性能提升

    一直以来,在高负载,复杂的生产环境中,tempdb的压力是成为整个实例瓶颈的重要因素之一.微软的工程师们也在各个版本中不断优化它的使用.到了Sql Server2014又有了新的特性使其性能得temp ...

  5. Web 应用性能提升 10 倍的 10 个建议

    转载自http://blog.jobbole.com/94962/ 提升 Web 应用的性能变得越来越重要.线上经济活动的份额持续增长,当前发达世界中 5 % 的经济发生在互联网上(查看下面资源的统计 ...

  6. 再谈HTTP2性能提升之背后原理—HTTP2历史解剖

    即使千辛万苦,还是把网站升级到http2了,遇坑如<phpcms v9站http升级到https加http2遇到到坑>. 因为理论相比于 HTTP 1.x ,在同时兼容 HTTP/1.1 ...

  7. VNF网络性能提升解决方案及实践

    VNF网络性能提升解决方案及实践 2016年7月 作者:    王智民 贡献者:     创建时间:    2016-7-20 稳定程度:    初稿 修改历史 版本 日期 修订人 说明 1.0 20 ...

  8. oracle 11g亿级复杂SQL优化一例(数量级性能提升)

    自从16年之后,因为工作原因,项目中就没有再使用oracle了,最近最近支持一个项目,又要开始负责这块事情了.最近在跑性能测试,配置全部调好之后,不少sql还存在性能低下的问题,主要涉及执行计划的不合 ...

  9. Web 应用性能提升的 10 个建议

    建议一.利用反向代理服务器加速和保护应用 如果 Web 应用运行在一台独立的电脑上,性能问题的解决方案是显而易见的:换一台更快的电脑,里面加上更多的处理器.内存.快速磁盘阵列等等.然后在这台新电脑上运 ...

随机推荐

  1. HDU1353+贪心

    注意精度. /* */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<al ...

  2. android 使用系统照相程序照相并存储、显示在界面上

    大部分业务可以通过调用系统的相机程序来拍照. 界面如下: <?xml version="1.0" encoding="utf-8"?> <Li ...

  3. http://blog.csdn.net/xyang81/article/details/7292380

    http://blog.csdn.net/xyang81/article/details/7292380

  4. Spring MVC 与 web开发

    转载:http://coderbee.net/index.php/java/20140719/959 项目组用了 Spring MVC 进行开发,觉得对里面的使用方式不是很满意,就想,如果是我来搭建开 ...

  5. 二维图形的矩阵变换(三)——在WPF中的应用矩阵变换

    原文:二维图形的矩阵变换(三)--在WPF中的应用矩阵变换 UIElement和RenderTransform 首先,我们来看看什么样的对象可以进行变换.在WPF中,用于呈现给用户的对象的基类为Vis ...

  6. TCP/IP的三次握手和四次分手以及超时机制

    使用INADDR_ANY的时候,往往针对多网卡情况,采用tcp连接方式,需要选择使用哪一个网卡发送,自己猜想应该是使用三次握手机制,如何判断目标地址不可达,应该使用的是超时机制,即握手超时则不可到达. ...

  7. C++类的复制构造函数和赋值运算符

    前言: C++面向对象的编程过程中,凡是在类中运用到动态内存分配的时候总是会写一个显示的复制构造函数和赋值重载运算符,本文将结合C++ Primer Plus一书的内容分析下原因: 一.在C++编程中 ...

  8. EDM排版table设置padding在ie7下bug

    今天搞EDM发现一个在ie7下很扯淡的bug,由于以前没遇到过,所以花了点时间来解决下. IE7下bug重现: <table cellpadding="0" cellspac ...

  9. 谈谈数据库中MyISAM与InnoDB区别

    MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与 ...

  10. 三维软件转Unity的系统单位设置研究

    Unity的系统单位为米,其他3D软件的模型导入,而保持和Unity的比例一致是非常重要的,下面对各软件进行测试: ㈠. 3dsmax 转 Unity的比例为100:1:也就是说Unity单位是3ds ...