JIT的本质mt是什么意思?首先在哪个公司使用?

收藏,3.3k 浏览
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
这个问题最近一直困扰着我,我感到自己无法理解Function对象的本质是什么。
如果说是一个普通的js变量。比如
var a = 5;
我可以把它理解为开辟了某个内存给变量a,并把内容赋值为5。
那么如果我定义了一个函数:
var fn = function() { console.log(this); };
它在内存中又是怎么存储的?
其实把我的问题再具体话一点,可以这样问:
1. Function对象中如何保存作用域链的上下文(context)
2. Function对象的函数体是以字符串的形式存储下来的吗?
再看看下面这个例子:
(function(){
var a = 5;
fn = function () {
console.log(a++);
这是个常见的闭包例子,就拿这个例子来说,Function对象是如何把变量a保存在自己的上下文环境中的呢?
首先感谢大家热情的回答,我再补充说明一下:
我主要的问题是Function在解释器引擎(比如Google V8)里是以怎样的形式实现的?是把函数体以字符串的形式存储下来,并在执行时以类似eval方法来调用它,或者还是其他方式?所以我的实际问题可能比较底层一点。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在JS中,Function对象就是Function对象。
在引擎中,随便它怎么实现都可以,只要遵照ECMAScript Spec就行了。
不过只要不是玩具引擎,就肯定不会把代码作为字符串存储,到执行到函数时再去解析的。
要理解这个问题,你需要定个目标,你要理解到什么样的深度呢?
我有个建议,就是不要把问题描述得多么底层。这样除了提高B格之外,其实无助于理解问题。这个问题是一个原理上的问题,不定非要你会C++、汇编才能理解。
你要知道Closure、This这些对象是如何传给函数的,即你说的闭包变量是如何传给函数的。你只需要参照ECMAScript Spec中「Creating Function Objects」、「Executable Code and Execution Contexts」这些章节就行了。
伪代码其实就是这样,对于下面的代码:
(function(){
var a = 5;
fn = function () {
console.log(a++);
经过解析,会变成类似下面的对象:
var RANDOM_LAMBA_1={
FormalParameterList:[],
Scope:{fn:&fn},
//假设用&表示变量的地址
var a = 5;\
FormalParameterList:[],\
Code:\"console.log(a++)\",\
Scope:{a:&a}\
RANDOM_LAMBA_1.Call(this,[]);
//Call方法大概如下:
function Call(thisObject,args) {
var context={},fn= //this是Function对象
fn.FormalParameterList.zip(args).forEach(function (a) {
context[a[0]]=&a[1];
context.arguments=
context.this=thisO//将this当成一个普通变量理解就行了
with(context,fn.Scope) {
eval(fn.Code);
至于引擎中怎么实现的,想太多也没用,思而不学则殆。
理解这些至少需要理解 SouceCode =& Tokens
=& AbstractSyntaxTree .....=& JIT Code 这个流程。将代码转换成抽象语法树的部分在最初JS加载解析时就已经执行了,不然怎么能不执行函数就能报告语法错误呢?虽然Spec用eval(stringSourceCode)这种方式抽述,但解释器实现显然最多只需要直接遍历已经Parse过后的Tree就行了,绝不会再去读取函数的FunctionBody的字符串解析执行的。如果还想更深入地理解,还不如直接去读编译原理呢。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Javascript 中变量可以存放两种类型的值,一种为原始值(primitive value),如 Undefined, Null, Boolean, Number, String。这类值存放在栈内部,每赋值一次就创建一个新的拷贝。另一种为引用值(reference value),这类值存在堆内存中,只能通过引用赋值。
举例说明:
var a = 'test';//原始值
var b = function() {}; //引用值
我们来测试下:
var a = 'test';//原始值
var b = function() {}; //引用值
b.a = 'test';
function change(m, n) {
m = 'change';
n.a = 'change';
change(a, b);
现在变量 a 仍然是 test,但是 变量 b 的属性 a 的值则已经为 change,这也就是说前者相当于是拷贝了一份值,而后者则是引用赋值。
而闭包问题我是这样理解的,因为 Javascript 只有两种作用域,一是全局作用域,二是函数作用域,它是没有块级作用域的。所以闭包的出现就相当于利用一个匿名函数的壳模拟出一个块级作用域。举个更明显的闭包例子:
for(var i = 0; i & 10; i++) {
(function(e) {
setTimeout(function() {
console.log(e);
联系上面的知识,这里往匿名函数内部传的参数将会被拷贝一份,也就是说循环没执行一次就拷贝变量 i 的值到匿名函数内部。
这里如果没有闭包的话:
for(var i = 0; i & 10; i++) {
setTimeout(function() {
console.log(i);
由于变量 i 直接暴露在全局作用域内,当调用 console.log 函数开始输出时,这是循环已经结束,所以会输出10个10。
这是我对题主问题的理解,希望能对题主有帮助,可能还有不完善的地方,我打算写篇博文好好总结下。:)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
JS里有两个常见的难点,其一是原型继承,其二是闭包,前者涉及原型链而后者涉及作用域链(Scope Chain)
function对象保存了闭包中的信息,这个说法是不确切的,应该说,function形成的scope chain阻止了闭包中变量被释放,从而使它再次被执行时仍能保留上下文
我们打开一个干净无插件的Chrome,访问about:blank,打开F12开Profile当中的Record Heap Allocation功能(记录内存分配?),然后把题主的代码稍微改得更消耗内存一些,改成定时爆炸方便我们抓情况
setTimeout(function(){
var a = new Array(1000).join('long text');
fn = function () {
console.log(a);
回车执行代码,3秒内点record,等函数执行会看到分配了若干内存,停止录制(大圆点),在窗口中可以看到被分配的各种对象,我们看看那个很长的字符串,在string类型里面一下子就能找到
正好我们也看见了另一个没有名字的字符串,看看两者的区别
区别很明显,retaining tree 相当于对象和window object联系的路径,在GC时,浏览器会试图寻找内存中retaining tree为空,或者说引用计数为零的对象予以回收。JS的特殊之处就在于,除了显示的对象属性(fn in Window)之外,函数对象对其闭包所有的变量也都算作引用计数(context in function)
换句话说,不是函数对象在保存了上下文的数据,而是函数对象保持了对上下文的引用,阻止GC回收上下文中的数据。
至于函数体在内存中的形式,就是一个更复杂的话题了,之前看得那篇文章找不到了我简单说说我记得的东西吧,现代JS引擎都是JIT实时优化的,首先函数刚被创建的时候,经过词法分析等步骤形成了最开始能跑的第一份函数体,由于JS的特性,其二进制代码中会有非常多的类型探测、判断等逻辑,执行效率非常低,然后函数被执行时,除了拿函数体出来执行之外,JS引擎会首先会记录下这个函数被执行了,其次还会跟踪其输入参数的类型,函数每被执行一定次数,JS引擎就会尝试优化一次函数体,根据之前记录的各种信息来进行优化,也就是说执行次数越多,参数类型越一致,那么函数体在内存中的优化程度就越高,甚至最后可以逼近C的性能。
打比方的话JS代码
function my(obj) { return obj.toString(); }
最开始可能内存里长这样
source: ...(源代码)
return get(obj, toString).call obj
if hasOwn(obj, toString)
return obj{toString}
proto = obj{__proto__}
while proto is not null && !hasOwn(proto, toString)
proto = proto{__proto__}
if !hasOwn(proto, toString)
throw object has no toString
return proto{toString}
然后my(3) 1000次以后可能就变成了
source: ...(源代码)
if(obj is simple number)
return body_number()
return body_slow()
numberToString: Number.prototype.toString
body_number:
return numberToString.call obj
body_slow:
return get(obj, toString).call obj
if hasOwn(obj, toString)
return obj{toString}
proto = obj{__proto__}
while proto is not null && !hasOwn(proto, toString)
proto = proto{__proto__}
if !hasOwn(proto, toString)
throw object has no toString
return proto{toString}
总之就是运行次数越多,函数体在内存中被优化得越激进
把之前看的那片文章翻了出来
QQ浏览器的开发写的
关于字节码的部分随便看看就好,V8已经不产生字节码了,随着V8的开源,别家引擎迟早会跟进。
我主要想说的就是JIT热点跟踪那部分,也就是『运行次数越多,函数体就会被越激进地优化』,至于例子里的类型推断优化,只是判断为热点后优化的一种而已,实际上优化的手段会有很多,展开循环/循环不变量/内联等等……类型推断是弱类型语言特有的一种优化方式
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我不懂 C++(Google V8 的实现语言),不过我看过为 Node.js 编写 C++ extensions 的文章,其中有提到过:V8 把 Javascript 代码编译成机器语言来执行,并且可以使用 C++ 来模拟编译的过程。于是我找了找类似的源代码,比如像下面这一段:
#include &v8.h&
#include &iostream&
#include &string&
using namespace v8;
int main(int argc, char* argv[]) {
// Create a stack-allocated handle scope.
HandleScope handle_
// Create a new context.
Persistent&Context& context = Context::New();
//context-&AllowCodeGenerationFromStrings(true);
// Enter the created context for compiling and
// running the hello world script.
Context::Scope context_scope(context);
Handle&String&
Handle&Script&
Handle&Value&
// Create a string containing the JavaScript source code.
source = String::New("function test_function() { var match = 0;if(arguments[0] == arguments[1]) { match = 1; } }");
// Compile the source code.
script = Script::Compile(source);
// Run the script to get the result.
result = script-&Run();
// Dispose the persistent context.
context.Dispose();
// Convert the result to an ASCII string and print it.
//String::AsciiValue ascii(result);
//printf("%s\n", *ascii);
Handle&v8::Object& global = context-&Global();
Handle&v8::Value& value = global-&Get(String::New("test_function"));
Handle&v8::Function& func = v8::Handle&v8::Function&::Cast(value);
Handle&Value& args[2];
Handle&Value& js_
int final_
args[0] = v8::String::New("1");
args[1] = v8::String::New("1");
js_result = func-&Call(global, 2, args);
String::AsciiValue ascii(js_result);
final_result = atoi(*ascii);
if(final_result == 1) {
std::cout && "Matched\n";
std::cout && "NOT Matched\n";
所以你想的没有错,看起来的确是保存为字符串再编译执行的。水平有限,只能帮到这里了,建议你找找为 Node.js 编写 C++ 扩展的文章,那些会对底层的编译/调用/执行等有更多深入的讲解。
另外我推荐你阅读一个博客系列:,并且还有,或许能回答你更多的疑问。
同步到新浪微博
分享到微博?
与我们一起探索更多的未知
专业的开发者技术社区,为用户提供多样化的线上知识交流,丰富的线下活动及给力的工作机会
加入只需一步
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
举报理由:
推广(招聘、广告、SEO 等)方面的内容
带有人身攻击、辱骂、仇恨等违反条款的内容
与已有问题重复(请编辑该提问指向已有相同问题)
不友善内容
答非所问,不符合答题要求
其他原因(请补充说明)
补充说明:
扫扫下载 App
SegmentFault
一起探索更多未知JIT的管理标准_百度知道
JIT的管理标准
如题,请指点
提问者采纳
准时制(JIT) JIT的核心思想: 可概括为“在需要的时候,按需要的量生产所需的产品”,也就是通过生产的计划和控制及库存的管理,追求一种无库存,或库存达到最小的生产系统 准时生产方式(Just In Time简称JIT),是日本丰田汽车公司在20世纪60年代实行的一种生产方式,1973年以后,这种方式对丰田公司渡过第一次能源危机起到了突出的作用,后引起其它国家生产企业的重视,并逐渐在欧洲和美国的日资企业及当地企业中推行开来,现在这一方式与源自日本的其它生产、流通方式一起被西方企业称为“日本化模式”,其中,日本生产、流通企业的物流模式对欧美的物流产生了重要影响,近年来,JIT不仅作为一种生产方式,也作为一种通用管理模式在物流、电子商务等领域得到推行。 在20世纪后半期,整个汽车市场进入了一个市场需求多样化的新阶段,而且对质量的要求也越来越高,随之给制造业提出的新课题即是,如何有效地组织多品种小批量生产,否则的话,生产过剩所引起的只是设备、人员、非必须费用等一系列的浪费,从而影响到企业的竞争能力以至生存。在这种历史背景下,1953年,日本丰田公司的副总裁大野耐一综合了单件生产和批量生产的特点和优点,创造了一种在多品种小批量混合生产条件下高质量、低消耗的生产方式即准时生产。JIT指的是,将必要的零件以必要的数量在必要的时间送到生产线,并且只将所需要的零件、只以所需要的数量、只在正好需要的时间送到生产。这是为适应20世纪60年代消费需要变得多样化、个性化而建立的一种生产体系及为此生产体系服务的物流体系。 JIT核心思想 在JIT生产方式倡导以前,世界汽车生产企业包括丰田公司均采取福特式的“总动员生产方式”,即一半时间人员和设备、流水线等待零件,另一半时间等零件一运到,全体人员总动员,紧急生产产品。这种方式造成了生产过程中的物流不合理现象,尤以库存积压和短缺为特征,生产线或者不开机,或者开机后就大量生产,这种模式导致了严重的资源浪费。丰田公司的JIT采取的是多品种少批量、短周期的生产方式,实现了消除库存,优化生产物流,减少浪费的目的。 准时生产方式基本思想可概括为“在需要的时候,按需要的量生产所需的产品”,也就是通过生产的计划和控制及库存的管理,追求一种无库存,或库存达到最小的生产系统。准时生产方式的核心是追求一种无库存的生产系统,或使库存达到最小的生产系统。为此而开发了包括“看板””在内的一系列具体方法,并逐渐形成了一套独具特色的生产经营体系。 JIT生产方式以准时生产为出发点,首先暴露出生产过量和其他方面的浪费,然后对设备、人员等进行淘汰、调整,达到降低成本、简化计划和提高控制的目的。在生产现场控制技术方面,JIT的基本原则是在正确的时间,生产正确数量的零件或产品,即时生产。它将传统生产过程中前道工序向后道工序送货,改为后道工序根据“看板”向前道工序取货,看板系统是JIT生产现场控制技术的核心,但JIT不仅仅是看板管理。 对生产制造的影响: 1.生产流程化 即按生产汽车所需的工序从最后一个工序开始往前推,确定前面一个工序的类别,并依次的恰当安排生产流程,根据流程与每个环节所需库存数量和时间先后来安排库存和组织物流。尽量减少物资在生产现场的停滞与搬运,让物资在生产流程上毫无阻碍地流动。 “在需要的时候,按需要的量生产所需的产品”。对于企业来说,各种产品的产量必须能够灵活地适应市场需要量的变比。众所周知,生产过剩会引起人员、设备、库存费用等一系列的浪费。避免这些浪费的手段就是实施适时适量生产,只在市场需要的时候生产市场需要的产品。 为了实现适时适量生产,首先需要致力于生产的同步化。即工序间不设置仓库,前一工序的加工结束后,使其立即转到下一工序去,装配线与机械加工几乎平行进行。在铸造、锻造、冲压等必须成批生产的工序,则通过尽量缩短作业更换时间来尽量缩小生产批量。生产的同步化通过“后工序领取”这样的方法来实现。 “后工序只在需要的时间到前工序领取所需的加工品;前工序中按照被领取的数量和品种进行生产。”这样,制造工序的最后一道即总装配线成为生产的出发点,生产计划只下达给总装配线,以装配为起点,在需要的时候,向前工序领取必要的加工品,而前工序提供该加工品后,为了补充生产被领走的量,必向再前道工序领取物料,这样把各个工序都连接起来,实现同步化生产。 这样的同步化生产还需通过采取相应的设备配置方法以及人员配置方法来实现。即不能采取通常的按照车、铣、刨等工业专业化的组织形式,而按照产品加工顺序来布置设备。这样也带来人员配置上的不同作法:弹性配置作业人数。降低劳动费用是降低成本的一个重要方面,达到这一目的的方法是“少人化”。所谓少人化,是指根据生产量的变动,弹性地增减各生产线的作业人数,以及尽量用较少的人力完成较多的生产。这里的关键在于能否将生产量减少了的生产线上的作业人员数减下来。具体方法是实施独特的设备布置,以便能够在需求减少时,将作业所减少的工时集中起来,以整顿削减人员。但这从作业人员的角度来看,意味着标准作业中的作业内容、范围、作业组合以及作业顺序等的一系列变更。因此为了适应这种变更,作业人员必须是具有多种技能的“多面手”。 2.生产均衡化 生产均衡化是实现适时适量生产的前提条件。所谓生产的均衡化,是指总装配线在向前工序领取零部件时应均衡地使用各种零部件,生产各种产品。为此在制定生产计划时就必须加以考虑,然后将其体现于产品生产顺序计划之中。在制造阶段,均衡化通过专用设备通用化和制定标准作业来实现。所谓专用设备通用化,是指通过在专用设备上增加一些工夹具的方法使之能够加工多种不同的产品。标准作业是指将作业节拍内一个作业人员所应担当的一系列作业内容标准化。 生产中将一周或一日的生产量按分秒时间进行平均,所有生产流程都按此来组织生产,这样流水线上每个作业环节上单位时间必须完成多少何种作业就有了标准定额,所在环节都按标准定额组织生产,因此要按此生产定额均衡地组织物质的供应、安排物品的流动。因为JIT生产方式的生产是按周或按日平均,所以与传统的大生产、按批量生产的方式不同,JIT的均衡化生产中无批次生产的概念。 标准化作业是实现均衡化生产和单件生产单件传送的又一重要前提。丰田公司的标准化作业主要是指每一位多技能作业员所操作的多种不同机床的作业程序,是指在标准周期时间内,把每一位多技能作业员所承担的一系列的多种作业标准化。丰田公司的标准化作业主要包括2个内容:标准周期时间、标准作业顺序、标准在制品存量,它们均用“标准作业组合表”来表示。 3.资源配置合理化 资源配置的合理化是实现降低成本目标的最终途径,具体指在生产线内外,所有的设备、人员和零部件都得到最合理的调配和分派,在最需要的时候以最及时的方式到位。 从设备而言,设备包括相关模具实现快速装换调整,例如,丰田公司发明并采用的设备快速装换调整的方法是SMED法。丰田公司所有大中型设备的装换调整操作均能够在10分钟之内完成,这为“多品种、小批量”的均衡化生产奠定了基础。 在生产区间,需要设备和原材料的合理放置。快速装换调整为满足后工序频繁领取零部件制品的生产要求和“多品种、小批量”的均衡化生产提供了重要的基础。但是,这种颇繁领取制品的方式必然增加运输作业量和运输成本,特别是如果运输不便,将会影响准时化生产的顺利进行。合理布置设备,特别是U型单元连结而成的“组合U型生产线”,可以大大简化运输作业,使得单位时间内零件制品运输次数增加,但运输费用并不增加或增加很少,为小批量频繁运输和单件生产单件传送提供了基础。 人员而言,多技能作业员(或称“多面手”)是指那些能够操作多种机床的生产作业工人。多技能作业员是与设备的单元式布置紧密联系的。在U型生产单元内,由于多种机床紧凑地组合在一起,这就要求并且便于生产作业工人能够进行多种机床的操作,同时负责多道工序的作业,如一个工人要会同时操作车床、铣床和磨床等。 JIT就是准时生产制(Just In Time),最早是日本丰田汽车公司采用的一种生产管理方式。它的基本思想是&在需要的时候,提供所需要的材料、零件和设备等&,从而避免库存带来的闲置浪费,因此又称为无库存生产方式。 JIT的本意是消除生产环节的各种闲置浪费,这里的闲置包括等待。那么能否把这一思想引用在企业的人力资源管理上呢?答案是肯定的。人力资源管理的JIT方式,就是&在需要的时候,得到所需要的人员&,有两个基本含义:第一,企业能立即得到所需要的人员,不能有延误,以免影响工作进行。第二,企业内不能有暂时不需要的人员,更不能有根本不需要的人员,不能存在人员的闲置浪费。也就是不要为了能立即得到所需要的人员而盲目提高企业人员存量。 在日益激烈的市场竞争中,虽然人才己成为企业最重要的资源,但是如果企业试图网罗、拥有所需要的各类人才,是不可能的,也没必要。首先,经济全球化以及日益发展的科学技术使市场环境日趋复杂,需求多样化以及市场多变化,要求企业参与市场竞争必须具备各种知识和大量信息。在这种条件下,企业无论规模大小,其拥有的人才资源、信息量总是有限,它必须不断从外界获得需要的人才和信息。中小企业尤其如此,它们更是需要外部人力资源的支持。其次,随着知识更新速度的加快,企业对所拥有的人才必须不断投资培训,否则就会陈旧落伍,这就需要很大的人才维护成本。如果不是长期需要的人才,何必一直拥有呢?而采取JIT方式,适时地从外部获得所需要的人才,其优势显而易见。 (二)人力资源JIT方式的必要性 实现人力资源的JIT至少可以给企业带来以下3个方面的好处: 1.减少人员维护成本。企业对内部员工不但要长期支付工资、福利等成本,而且要不断投入培训费用以提高和维持员工的各项技能。使用JIT人员,虽然可能一次性支出较大,但从长远观点看能节省很多成本。 2.不断吸收外部信息。通过JIT方式随时吸引外部人才的加入,能加强企业与外部的交流,及时取得各种有价值的信息,尤其是一些技术发展趋势方面的情况,往往从其他渠道难以得到。 3.集中力量于核心职能。实践证明,&大而全,小而全&的企业结构是效率低下的,目前出现的虚拟化管理的趋势,就是要把企业内部的部分职能逐渐分离出来,由社会或其他组织承担,从而使企业把非核心因素排除在企业组织之外,集中力量于企业的战略核心环节。我国进行的企业剥离部分社会职能、高校后勤社会化等一系列改革都体现了这种要求。 (三)人力资源JIT方式的可行性 在计划经济体制下,人力资源管理的JIT方式是绝不可能实现的,但是随着市场经济的深入发展,JIT方式已成为可能,并且将发展成为一种常用的重要的方式。 1.随着人才市场的发展和完善,人员流动性增强,人才素质提高,从而对外部人才的可获性增强。众多的猎头公司、人才中心、咨询公司等都是可以利用的渠道,通过与这些公司的长期广泛联系,企业可以在需要的时候很容易地得到需要的人才,使JIT成为可能。尤其在我国,劳动力资源丰富的特点为企业采用JIT方式提供了资源保障。 2.用人制度的改革为JIT的实施提供方便。企业与个人之间新型的劳动合同关系消除了终身制的种种弊端,使得企业在用人方面拥有更大的主动性和灵活性。通过签订劳动合同,企业可以决定员工的聘用、待遇、绩效以及辞退等问题,也可以事先确定员工的服务时间,从而保证了JIT的顺利实施。 3.从国外经验看,JIT在人力资源管理中有着广泛的应用。在国外,早已出现的人才租赁公司为企业聘用JIT人员提供了帮助。据统计,美国约有20%的中小企业都采用人才租赁的方式,而人才租赁正是JIT一种主要方式。 (四)JIT人员的对象 按照JIT的基本思想,企业中的任何人员都可能成为JIT管理的对象,只要企业出现人员需要,就要做到JIT.根据企业中各类人员的特点和作用,我们可以把JIT管理的对象分为两大类: 1.企业迫切需要的核心人员。一般来讲,企业的核心人员包括决策人员、管理人员、研究开发人员以及业务开发人员等等。这些核心人员决定了企业的综合竞争力,对于企业的生存和发展起着关键性的作用,他们是企业不可或缺的力量。因此,如果需要这部分人员,就必须及时补充,做到Just In Time.比如,由于业务扩展或人事变动,企业急需业务开发人员,人力资源管理部门就应当做到使所需人员及时到位,否则,将影响企业业务的开展。 有人认为,企业核心人员是企业的中坚力量,不应属于&随叫随到&的JIT人员。这是对JIT本质认识不清的结果,JIT要求在需要的时候提供需要的人员,并不涉及这种需要的时间长短。既然出现了对核心人员的需要,就应当使核心人员准时到位。尽管这类人员是企业长期需要的,而且也相对稳定,但其最初加入企业应当是Just In Time. 2.企业暂时需要的人员。这类人员虽然不构成企业的核心力量,但是他们的可获性将直接影响企业各项工作的顺利进行。这类人员可以是一些急需的专门人才,如产品开发人才、项目开发人才,因为这类人才只为特定产品或项目服务,企业没有必要长期拥有,因此可采用JIT方式临时雇佣,尤其对于一些中小企业,自身的技术力量不强,不能吸引或保留高层次技术人才,通过JIT方式获取外部人才将是一种理想的选择。另外,企业暂时需要的人员也可能是一些临时性或季节性工作要求的辅助人员,比如偶尔出现的货物运输、季节性的工作量增加,都需要使用JIT人员。由于这部分人员类型多、变动频繁,因此进行 JIT开发的工作量相对较大,必须有科学详尽的JIT人员规划。 (五)JIT人员的规划 JIT技术的一个重要特点就是严格的计划,为了适时地满足企业对人员的需要,同时又要消除人员的闲置,即不能靠大量&库存&来满足变动的需求,必须做好JIT人员的规划。一般应根据行业的商业周期或季节性规律,科学预计企业业务的发展变化对人员需求的影响,尤其是对临时需要人员的影响。 规划中,首先要确定JIT人员可能担任的工作清单,清单内容包括工作说明,工作所需的技能、知识,工作所需的方法、工具、设备,工作的质量要求,工作所需的培训时间及鉴定合格的标准等。然后根据工作清单,采取各种方式如提前招聘、租赁、兼职、顾问等,预先约定JIT人员,一旦需要就立即通知他们前来工作。如果是短期人力需求,工作结束后相应的JIT人员也结束临时聘用。 为保证JIT人员规划的顺利实施,应当建立详细的人才资源信息库,记录所有可以利用的外部人力资源,比如兼职人员、转换工作中的人士、精力充沛的退休人员、可以租赁的人才、自由职业者等等,并保持与这些人员的长期联系。人才库应当包括人员的特点、技能、爱好、联系方式、薪资要求等方面的信息,以便为企业预约JIT人员提供参考。 在人力资源开发与管理工作中,JIT既是一种技术,更是一种思想。它要求人力资源管理部门着眼于企业实际需要,周密计划、严格控制,既不能出现人员短缺,也不能有人员的闲置,这是一项非常困难而又很有意义的工作
其他类似问题
为您推荐:
管理标准的相关知识
其他1条回答
JIT的核心思想:
可概括为“在需要的时候,按需要的量生产所需的产品”,也就是通过生产的计划和控制及库存的管理,追求一种无库存,或库存达到最小的生产系统
准时生产方式(Just In Time简称JIT),是日本丰田汽车公司在20世纪60年代实行的一种生产方式,1973年以后,这种方式对丰田公司渡过第一次能源危机起到了突出的作用,后引起其它国家生产企业的重视,并逐渐在欧洲和美国的日资企业及当地企业中推行开来,现在这一方式与源自日本的其它生产、流通方式一起被西方企业称为“日本化模式”,其中,日本生产、流通企业的物流模式对欧美的物流产生了重要影响,近年来,JIT不仅作为一种生产方式,也作为一种通用管理模式在物流、电子商务等领域得到推行。
在20世纪后半期,整个汽车市场进入了一...
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 mt是什么意思 的文章

 

随机推荐