`
jinghuainfo
  • 浏览: 1526154 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

文件空间变大的一个特例

 
阅读更多

文件空间变大的一个特例

转载时请注明出处:http://blog.csdn.net/absurd

最近写一个通过汉字得到拼音的函数库,发现编译成静态库(.a)文件大小为300K,编译成共享库文件陡增到500K。这让我莫名其妙,开始以为是调试信息引起的,但strip之后没有多大变化。

objdump看了一下:

[root@localhost pinyin]# objdump -h libpinyin.so

5 .rel.dyn 00036840 000003cc 000003cc 000003cc 2**2

11 .rodata 000527b3 00036e00 00036e00 00036e00 2**5

重定位符号竟占了223296(0x00036840)字节,再查看定位符号:

[root@localhost pinyin]# objdump -R libpinyin.so

libpinyin.so: file format elf32-i386

DYNAMIC RELOCATION RECORDS

OFFSET TYPE VALUE

00036d30 R_386_RELATIVE *ABS*

00036d37 R_386_RELATIVE *ABS*

00036d3c R_386_RELATIVE *ABS*

00036d6a R_386_RELATIVE *ABS*

0006e1a0 R_386_RELATIVE *ABS*

0006e1a4 R_386_RELATIVE *ABS*

0006e1a8 R_386_RELATIVE *ABS*

0006e1ac R_386_RELATIVE *ABS*

0006e1b0 R_386_RELATIVE *ABS*

0006e1b4 R_386_RELATIVE *ABS*

0006e1b8 R_386_RELATIVE *ABS*

这下我明白了:数据里使用了很多小字符串,每个字符串都有一个定重位符号,累积起来的就大了。要减小空间占用量,有两个方法,编译成静态库,或者把小字符串合并起来,通过偏移量访问。

分享到:
评论

相关推荐

    GTWR_Briefing.pdf

    地理和时间加权回归(GTWR)是一种能同时解释空间和时间非平稳性的局部线性回归模型。...如果是面板数据,则将所有横截面中的记录合并到一个文件中。每个记录应该有三个字段,分别表示X坐标、Y坐标和时间戳。

    1954北京坐标转80大地坐标转换软件

    要求得七参数就需要在一个地区需要3个以上的已知点,如果区域范围不大,最远点间的距离不大于30Km(经验值),这可以用三参数,即X平移,Y平移,Z平移,而将X旋转,Y旋转,Z旋转,尺度变化K视为0,所以三参数只是七...

    coord4.0坐标转换

    要求得七参数就需要在一个地区需要3个以上的已知点,如果区域范围不大,最远点间的距离不大于30Km(经验值),这可以用三参数,即X平移,Y平移,Z平移,而将X旋转,Y旋转,Z旋转,尺度变化K视为0,所以三参数只是七...

    google C++ 风格指南 - 中文版

    5.4. 变长数组和 alloca() 5.5. 友元 5.6. 异常 5.7. 运行时类型识别 5.8. 类型转换 5.9. 流 5.10. 前置自增和自减 5.11. const 的使用 5.12. 整型 5.13. 64 位下的可移植性 5.14. 预处理宏 5.15. 0 和 ...

    循序渐进Oracle 数据库管理、优化与备份恢复.pdf

    详细讨论了Oracle数据库的创建、从OEM到Grid Control、Oracle的字符集、用户的创建与管理、表空间和数据文件、自动存储管理(ASM)、临时表空间和临时文件、备份与恢复、备份方案与特例恢复、Oracle的闪回特性、Oracle...

    循序渐进Oracle数据库管理、优化与备份恢复

    详细讨论了oracle数据库的创建、从oem到grid control、oracle的字符集、用户的创建与管理、表空间和数据文件、自动存储管理(asm)、临时表空间和临时文件、备份与恢复、备份方案与特例恢复、oracle的闪回特性、oracle...

    imageprocess

    二值图像可以看成是灰度图像的一个特例。 3) 索引图像: 索引图像的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定,如矩阵元素...

    摩托罗拉C++面试题

    1.介绍一下STL,详细说明STL如何实现vector。 Answer: STL (标准模版库,Standard ...MVC模式是observer 模式的一个特例,典型的有MFC里面的文档视图架构。 18,多重继承如何消除向上继承的二义性。 使用虚拟继承即可.

    语言程序设计课后习题答案

    面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。 面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--...

    -C++参考大全(第四版) (2010 年度畅销榜

    12.9 带一个参数的构造函数:特例 12.10 静态类成员 12.11 何时执行构造函数和析构函数 12.12 作用域分辨符 12.13 嵌套类 12.14 局部类 12.15 向函数传递对象 12.16 返回对象 12.17 对象赋值 第13章 数组、指针、...

    正则表达式

    [\b] 一个退格直接量(特例) ________________________________________________________________ 3.复制 用以上的正则表式的语法,可以把两位数描述成 / \ d \ d /,把四位数描述成 / \d \ d \ d \ d /.但我们还...

    sgov-assembly-line:语义概念模型生产线的问题跟踪器

    语义词典的生产线生产线是用于创建一组工具。 当前,它包含几个组件: 使用作为后端的。 它是用于管理工作空间(用于编辑术语语义词典的事务)... 使用gen_env.sh实用程序生成一个变量文件。 实用程序需要一个具有local

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

     1.1 编写一个简单的C++程序 2  1.1.1 编译、运行程序 3  1.2 初识输入输出 5  1.3 注释简介 8  1.4 控制流 10  1.4.1 while语句 10  1.4.2 for语句 11  1.4.3 读取数量不定的输入数据 13  1.4.4 if语句 15...

    C++Primer(第5版 )中文版(美)李普曼等著.part2.rar

     1.1 编写一个简单的C++程序 2  1.1.1 编译、运行程序 3  1.2 初识输入输出 5  1.3 注释简介 8  1.4 控制流 10  1.4.1 while语句 10  1.4.2 for语句 11  1.4.3 读取数量不定的输入数据 13  1.4.4 if语句 15...

    building_storage_networks_chsSAN存储区域网络 .rar

    Marc Farley的这本书从各个集成组件出发,为读者理解和评价存储网络提供了一个综合指导。 存储的传统、趋势及未来 传统的存储和管理方法主要强调限制花费和信息的访问。因此,使用传统的存储管理原则,信息存储...

    游戏之旅--我的编程感悟【有目录】

    这一章是对1 0 年前知识的一个回 顾,它们如今已经沉寂在历史中, 或是被Windows 掩盖。但是, 作 为喜爱创根l河底的程序员,我们有 必要对Window s 之前的时代有一 些了解。 XIV 3.1 C 语言..........................

Global site tag (gtag.js) - Google Analytics