[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 有感于刚看的一个帖子,请教一下web的安全性



好像是hotspot吧
是否能运用于静态优化,我的确不知道
因为不是做编译的,所以具体细节我不是很清楚

其实c++就是编译成为机器码的吧,不过机器码和机器码也有区别的啊
全是瓶颈,那么也就全不是瓶颈了


cuichao wrote:
> 你的意思是动态发现瓶颈, 然后优化?
> 请问: 到底是使用哪类技术, 对瓶颈部分进行的优化? 
> 你提到的"二进制代码的优化", 具体是什么? 
>
> 如果这类技术,可用于静态编译,那肯定不是JAVA的优势了。
> 因为C++可以看成: 视所有的部分为瓶颈,进行了优化了。
>
> 结合我搜索到的那段资料的情况,
> 这个优化是不是“检测瓶颈,把瓶颈部分变成机器代码(二进制代码)直接执行”
> 如果这样:还是我说的那个意思:C++早把所有的代码都变成机器代码了,这算不
> 上JAVA特有的优化。
>
> 如果是静态编译不能进行的优化,就是我最初理解的"在运行的时候才能进行的优化"
> 那也应该能编程实现。
>
> 请斧正, 请指教,谢谢
>
>
>   
>> 呵呵,还是讨论技术好啊
>>
>> 我试着说说我理解的动态优化吧
>> 我所理解的动态优化不是说使用int存储long
>> 而是再整个的运行期,vm检测程序的运行情况,发现又运行的比较慢的部分
>> (比如是一些方法的集合)
>> 而这部分运行的又很频繁,那么他会对他进行二进制代码的优化
>>
>> 因为对代码进行编译,肯定会影响到其他的代码,
>> 所以在c++进行编译的时候,他不知道那部分是效率的瓶颈,他只能从全局的角度
>> 去优化代码
>> 这个肯定是不如好象java根据在运行时候捕获的数据再去优化来的效果好
>>
>> 我是这样理解的
>>
>> cuichao wrote:
>>     
>>> 到底你说的“动态优化”是什么呀?
>>> 我开始的理解是.在运行的时候才能确定的优化,
>>> 比如:一个long型的数据在运行的时候因为值较小, 就使用int的空间存储和计算提供效率。
>>> 这类优化是可以使用C++实现的。
>>> 我搜索了一些,"动态优化”------有下面的说法:
>>> ---------------------------------------ref begin
>>> 动态优化,提前编译为机器码的技术(Dynamic Optimization,Ahead Of Time) 
>>> 动态优化技术充分利用了JAVA源码编译,字节码编译,动态编译和静态编译的技术。
>>> 其输入时JAVA的原码或字节码,而输出是经过高度优化的可执行代码和个来动态库的混合
>>> (Window中是DLL文件,UNIX中是共享库.a .so文件) 
>>> --------------------------------------ref end
>>> 如果按这个说法,C++在执行以前,就提前编译为了机器吗,可谓“彻底的动态优化了”
>>> 怕自己的理解有误, 特请教之
>>>
>>>
>>>   
>>>       
>>>> 无意间掀起的一次对于语言的讨论
>>>> 实在是抱歉之极
>>>> 其实,我所说的所谓的“纯静态语言”,也许没有这个东西
>>>> 毕竟我对c++了解不多
>>>> 但是,c++是静态编译的总没错吧
>>>> 那么他如何能够做到动态优化呢?也就是运行期优化产生新的优化过的二进制代码?
>>>> 这个我不了解,但是我觉得是不能的
>>>> 如果真的可能的话,是不是也是一个类虚拟机的实现呢?
>>>>     
>>>>         
>>>   
>>>       
>>>> 其实,如果c++也有虚拟机层的华,那么其实思想不就一样了。
>>>> 还有,我觉得java的跨平台性,是一个双刃剑,
>>>> 在某些场合,一次编译到处运行
>>>> 倒不如一次编写,到处编译
>>>>     
>>>>         
>>>   
>>>       
>>>> 所以,我刚才引用了一句话啊
>>>>     
>>>>         
>>>   
>>>       
>>>> In most cases, Java is faster.
>>>>     
>>>>         
>>>>> "My feeling is that it is developer ignorance or laziness or that leads
>>>>> to code which is _*either slow to write or slow to run*_."
>>>>>       
>>>>>           
>>>
>>>
>>> cuichao wrote:
>>>   
>>>       
>>>> 什么是“纯静态语言”? 真是长见识了。讨论的时候请不要搞笑
>>>> java采用动态优化的策略, 对技术这个不了解,
>>>> 但C++肯定能实现这种技术,甚至可以做成类库,大家来重用。
>>>>
>>>> C++是不跨平台,许多C/C++可以使用的库是跨平台的。
>>>> 比如你可以选择QT编写GUI程序,SDL库写图形游戏。
>>>>
>>>> JAVA 有个虚拟机层,让JAVA跨平台。
>>>> C++也有数不清的库,你可以选择是否跨平台。
>>>>
>>>> 比较语言应该比较什么?有一些比较是没有意义的。
>>>> 好的设计shell编程都可以比C的汇编快。但不能说shell效率高,
>>>> shell是C编写的,那么shell快也是因为C快了?
>>>>
>>>> 就像“动态优化的策略”这类技术,其实是和语言无关的。
>>>> 就算使用JAVA实现了这个技术,也不能说是JAVA的。
>>>> 就像不能说某种算法是某种语言的。
>>>>
>>>> 你在一个新平台使用C语言实现了一个JAVA虚拟机, 
>>>> 这个虚拟机的执行效率很高,你可以宣布:这是C效率高的原因。
>>>> 这似乎也没法反对。这肯定比使用shell实现一个虚拟机效率高。
>>>>
>>>>
>>>>
>>>> ----- Original Message ----- 
>>>>   
>>>>     
>>>>         
>>>>>> java采用动态优化的策略,这个是c++等纯静态语言无法做到的
>>>>>> java可以智能的去优化一些代码,所以在server side我说他的效率高 



Reply to: