Fortran 板


LINE

你这个说法很笼统. 因为所谓的快慢,或是快几倍这种叙述前 提都是你有一个比较的运算(例如浮点跟整数,那我们可以说 整数运算明显更快).如果缺乏具体的运算.其实这种快慢的说 法没有意义. 所以当你问pointer运作起来有没有比较有效率这个叙述时, 你必须要讲清楚是相对於什麽计算而言.比如说你去比较两个 变数a=1,b=1,a+b=? 这种问题,你把a,b用pointer取代做运算, 不可能比较快,事实上你甚至多了把a,b设成pointer的步骤, 总地来讲只会更慢. 所以C语言也好,fortran也罢,pointer有没有更有效率,都是 看你怎麽用! 跟pointer这种型态本身的关系并不大. 那pointer有没有相对什麽计算而言更有效率呢? 那你就必须 去了解pointer的意义. pointer主要的功用在於,用资料在记 忆体中的位址(四个整数)来取代资料本身.这样做有什麽好处 呢? "简化资料在记忆体中搬动的过程" 记忆体里面的每一笔资料要搬动都要经过很复杂的过程,首先 程式会先去读你的资料有多大,读完之後去跟记忆体要空间, 要完之後再把原本的资料复制过去.这个过程本身是很耗时间 的,尤其当资料结构越大越复杂的时候,更是如此. 这个时候pointer的优势就出来了,我们并不具体的搬动在记忆 体中的资料,而是把这些资料都用一个四码的索引代表.每一次 搬动资料时,我都只搬动索引而不去搬动资料本身.直到我真 的需要取出资料时,程式再透过这组索引去帮你把资料取出来. 这就是pointer的精神. 所以pointer特别适合使用的情况是: 复杂的资料结构,需要频繁的在记忆体搬动的时候. 这里提一下"复杂的资料结构"的意思.因为这些资料的索引,本 身是由四个整数组成的,所以比这个更复杂的资料,都可以看过 是复杂的资料结构.例如超过四位的整数,实数,复数,字串,或者 自订的结构变数都可以说是复杂的资料结构. 这时候如果你使用pointer来做搬动资料,除了让记忆体搬动的过 程减少了,还顺便让fortrn避开了直接接触自己较不擅长的,复杂 的资料结构的问题(fortran在处理结构变数,字串方面的效率使远 逊於C的,但在整数还有实数计算上,则优於C)而把问题转成了擅长 的整数问题. 这也就是说,如果你的资料并不复杂,那麽不管你的搬动有多频繁, 用pointer都是多此一举.同样的道理,如果你的资料在记忆体中并 不需要做频繁的搬动,用pointer也是得不到好处的.甚至会完全拖 慢你的速度. 所以当你使用pointer之前只要问问自己三个问题就好了 1.我的资料在记忆体中的搬动频繁吗? 2.我的资料比四个整数更复杂吗? 3.现有的不使用pointer的程式不能给出满意的效率吗? 如果上面三个问题的答案都是yes,那麽就大方的使用pointer吧. *附注: 其实pointer也还以很多其他的应用,其中很多并不是出於记忆体 跟效率上做考量的,而是出於程式的需求来考量的.像这种时候, 我们就不该单纯从上面的问题来回答用pointer的好处. 不过既然你都说了你主要的使用是在阵列计算上,所以这些我就不 提了.等程式功力进步了,再慢慢摸索吧! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 169.237.42.117 ※ 编辑: pipidog 来自: 128.120.178.119 (02/27 11:29)
1F:推 kobeismyfans:感谢你的回覆 顺带一问 四个整数是甚麽意思 四位数吗 02/27 20:48
2F:→ kobeismyfans:C=B+A 这样算是把资料搬动吗? 02/27 20:50
3F:→ pipidog:你要不要google一下,或查一下关於pointer是什麽? 02/28 03:17
4F:推 PTT0207445:推 03/10 02:34







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP