20130403-[转]One ELF Section per Function

2024-03-06 20:18

本文主要是介绍20130403-[转]One ELF Section per Function,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

KEI MDK软件中,工程设置有这样的一个选项。

选项One ELF Section per Function的主要功能是对冗余函数的优化。通过这个选项,可以在最后生成的二进制文件中将冗余函数排除掉(虽然其所在的文件已经参与了编译链接),以便最大程度地优化最后生成的二进制代码。

而该选项实现的机制是将每一个函数作为一个优化的单元,而并非整个文件作为参与优化的单元。

选项One ELF Section per Function所具有的这种优化功能特别重要,尤其是在对于生成的二进制文件大小有严格要求的场合。人们习惯将一系列接口函数放在一个文件里,然后将其整个包含在工程中,即使这个文件将只有一个函数被用到。这样,最后生成的二进制文件中就有可能包含众多的冗余函数,造成了宝贵存储空间的浪费。

选项One ELF Section per Function对于一个大工程的优化效果尤其突出,有时候甚至可以达到减半的效果。当然,对于小工程或是少有冗余函数的工程来说,其优化效果就没有那么明显了。

这篇关于20130403-[转]One ELF Section per Function的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/781202

相关文章

「Debug R」报错unable to find an inherited method for function是如何产生的

在一个群里看到这样一条报错,截图如下: 报错信息 当然这种问题解决起来也很快,无非就是把报错信息复制出来放在搜索引擎上,只不过你要挑选合适的搜索引擎。 百度 谷歌 必应 解决方案就是用dplyr::select。 虽然报错解决了,但是我还想着要重复出这个报错。因为只有能重复出报错,才能证明你不是运气好才解

C++可调用对象与function

C++语言有几种可调用对象:函数、函数指针、lambda表达式、bind创建的对象以及重载了函数调用运算符的类。 和其他对象一样,可调用的对象也有类类型。例如,每个lambda有它自己唯一的(未命名)类类型;函数及函数指针的类型则由其返回值类型和实参类型决定。 然而,两种不同类型的可调用对象却可能共享同一种调用形式。调用形式指明了调用返回的类型以及传递给调用的实参类型。一种调用形式对应一个函数

INVS利用gatearray实现post-mask的function ECO

随着现代IC的设计发展,设计的规模和复杂度逐步增加,对于验证完备性的挑战越来越大,加之TO的时间压力,芯片设计通常会出现下列的场景: 芯片回片一次点亮大部分的case都可以顺利通过小部分的功能需要修正 对于重要的特性三,用户可以选择gatearray的cell高效的完成这一个任务。闲言少叙,ICer GO! 由于·硬件设计天然的特性,大部分芯片都会有reversion的计划,有时候也被称

一个页面中需要多个window.onload = function(){}冲突问题解决

今天在写js作业的时候,没注意用到了几个 window.onload,发现打开测试的时候有冲突,导致没有效果出现。上网查阅了资料,发现解决办法。 如果在一个页面中有两个JavaScript 分别都用到了window.onload 一个是:window.οnlοad=function(a){...},另一个是:window.οnlοad=function(b){...} 就造成了一个JavaS

Linux下ELF格式可执行文件及动态链接相关部分的解析

Linux下面的ELF文件主要由ELF头、程序头和各个段组成。 二进制可执行文件结构 本文使用的示例程序如下。首先把它编译为可执行文件,再使用Linux下面的hexdump命令,把可执行文件完全转换为16进制的表示形式,然后分析这样的表示与ELF文件中各部分的对应关系。 示例程序: #include <stdio.h>int global_init_var = 84;int gl

ES6新特性箭头函数(Arrow Function)

箭头函数是ECMAScript 6最受关注的更新内容之一。它引入了一种用「箭头」(=>)来定义函数的新语法,它…它碉堡了~。箭头函数与传统的JavaScript函数主要区别在于以下几点: 1.对 this 的关联。函数内置 this 的值,取决于箭头函数在哪儿定义,而非箭头函数执行的上下文环境。 2.new 不可用。箭头函数不能使用 new 关键字来实例化对象,不然会报错。 3.

【GNU笔记】内联函数与宏一样快 An Inline Function is As Fast As a Macro

内联函数与宏一样快 An Inline Function is As Fast As a Macro 通过声明内联函数,你可以指示 GCC 更快地调用该函数。GCC 可以实现这一点的一种方法是将该函数的代码集成到其调用者的代码中。这通过消除函数调用开销使执行速度更快;此外,如果任何实际参数值是常量,则它们的已知值可能允许在编译时进行简化,因此不需要包含所有内联函数的代码。对代码大小的影响是难以预

java中BiFunction类和Function类的区别和联系?

在Java中,Function和BiFunction都是函数式接口,它们都是Java 8引入的,用于支持函数式编程风格。这两个接口都位于java.util.function包中,但它们在处理参数和返回值方面有所差异: Function接口: 接口定义:Function<T, R>表示一个接受一个类型为T的输入参数,并产生一个类型为R的结果的函数。方法:主要包含R apply(T t)方法,用于

损失函数 (loss function)

损失函数  损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。例如在统计学和机器学习中被用于模型的参数估计(parametric estimation),在宏观经济学中被用于风险管理(risk

oracle decode function explain

我们往往在做和并行的时候会用到oracle的decode()函数,他的使用格式为: 它的含义是,当expr的值和search值相同的时候就显示result,否则显示default值。详情可参考:oracle decode 举例说明:  我们这里有三张表,分别是:分数表、学生表、课程表。 分数表: -- Create tablecreate table mzsf.TSCORE