随着时间的推移,Sun的JVM和JIT变得非常聪明.以前不再需要将常识作为必要的微优化的东西,因为它会得到照顾.
例如,过去应该将所有可能的类标记为final,因此JVM会尽可能多地内联代码.但是现在,JIT根据在运行时加载的类知道你的类是否是最终的,如果加载一个类使原始类不可能,它会取消内联方法并取消标记为最后.
JVM或JIT还为您做了哪些其他智能微优化?
编辑:我把它做成了社区维基; 我想随着时间的推移收集它们.
我需要测试对象是类型NSString还是UIImageView.我怎么能做到这一点?是否有某种类型的"isoftype"方法?
我有以下代码:
#define checkLiteMessage \
{ \
#ifdef LITE_VERSION \
if (alertView.tag == 100) \
{ \
if (buttonIndex == 1) \
[ [UIApplication sharedApplication] openURL: buyAppLink]; \
[alertView release]; \
return; \
} \
#endif \
} \
Run Code Online (Sandbox Code Playgroud)
我想要做的是每次调用checkLiteMessage时都要包含以下代码:
#ifdef LITE_VERSION
if (alertView.tag == 100)
{
if (buttonIndex == 1)
[ [UIApplication sharedApplication] openURL: buyAppLink];
[alertView release];
return;
}
#endif
Run Code Online (Sandbox Code Playgroud)
我的问题是什么?为什么这段代码不能编译?
谢谢.
我正在为电子商务应用程序添加多种货币支持.我解决问题的方法是将应用程序保留在它的基础货币中,并让模板在显示价格时随时调用priceDisplay()函数/插件.因此模板继续以美元金额收取价格.priceDisplay函数在需要时正确转换价格,并根据存储在会话中的查看器设置添加正确的$或Euro符号.在订单提交时,应用程序将以美元金额以及currencyCode和currencyRate存储订单.此外,我们将以其货币向客户的信用卡收费,以确保他们按照订单屏幕上显示的内容收费.
现在我遇到的问题是在购物车中以及在结账时显示购物车总数.例如,应用程序向模板发送要在购物车中显示的价格:
小计:9.75
船:
总共5.95 :15.70
模板获取这些金额并在每个项目上调用priceDisplay函数.如果货币汇率为1.1,那么我们会向用户显示:
小计:10.725 - > 10.73
船:6.545 - > 6.55
总计:17.27
您可以看到小计+发货= 17.28,但转换的总数是17.27.
所以我认为可以使用的几个选项可以使用,但是并没有想到:
如果它有任何区别,应用程序是PHP,模板是Smarty.
您还可以在添加购物车项目的行总数时看到相同的问题:
3项x 9.75每个= 29.25
转换:
3项x 10.73(10.725)= 32.18(32.175)
但3 x 10.73 = 32.19!= 32.18
我想根据类似商品的平均价格找到新商品的价格.函数get-k-similar使用k-Nearest Neighbors,但返回此输出
((list rating age price) proximity).
For example, 2-similar would be:
(((5.557799748150248 3 117.94262493533647) . 3.6956648993026904)
((3.0921378389849963 7 75.61492560596851) . 5.117886776721699))
Run Code Online (Sandbox Code Playgroud)
我需要找到类似物品的平均价格.即平均值为117和75.有更好的迭代方法吗?我的功能看起来太难看了.
(define (get-prices new-item)
(define (average-prices a-list)
(/ (cdr
(foldl (?(x y) (cons (list 0 0 0)
(+ (third (car x)) (third (car y)))))
(cons (list 0 0 0) 0)
a-list))
(length a-list)))
(let ((similar-items (get-k-similar new-item)))
(average-prices similar-items)))
Run Code Online (Sandbox Code Playgroud) 我有下面的代码像魅力:
var div = $('#div');
div.html('<div>one line</div><div>another line</div>');
div.slideDown('slow');
Run Code Online (Sandbox Code Playgroud)
但是当我需要更改内容(行数)时问题就出现了:
div.html('<div>one line replacement</div><div>another line replacement</div><div>third line</div>')
Run Code Online (Sandbox Code Playgroud)
这种转变太快了.如何动画这个?
如何获取Django Flatpages模板的反向URL
我有一个包含页眉和页脚的报告.根据数据,应该只有两组.我将Group Footer设置为在它之后有一个分页符.我不希望最后一个组在报表页脚之前创建分页符(如果我这样做,我会设置报表页脚在它之前有一个分页符.).我从未遇到过其他报道编写者的这个问题.
报告打印输出的示例而非设计的示例.我的报告只有一个组标题和一个组页脚:
报告标题
组数据集1标题详细信息详细信息组数据集1页脚
组数据集2标题详细信息组数据集2页脚!我不想要这个!
报告页脚(单独停留在最后一页)
张贴在他们的董事会:http: //community.devexpress.com/forums/t/78705.aspx
我写了一个类,让我传入变量类型,变量名,提示和默认值的列表.该类创建一个wxPython面板,该面板显示在一个框架中,该框架允许用户在按下计算按钮并将结果作为绘图返回之前设置输入值.我使用exec语句将所有变量添加到类中.这将所有变量保存在一个类中,我可以通过名称引用它们.
light = Variables( frame , [ ['f','wavelength','Wavelength (nm)',632.8] ,\
['f','n','Index of Refraction',1.0],])
Run Code Online (Sandbox Code Playgroud)
在类中,我使用以下语句创建和设置变量:
for variable in self.variable_list:
var_type,var_text_ctrl,var_name = variable
if var_type == 'f' :
exec( 'self.' + var_name + ' = ' + var_text_ctrl.GetValue() )
Run Code Online (Sandbox Code Playgroud)
当我需要使用变量时,我可以通过名称引用它们:
wl = light.wavelength
n = light.n
Run Code Online (Sandbox Code Playgroud)
然后我读到SO,很少需要在Python中使用exec.这种方法有问题吗?有没有更好的方法来创建一个类,该类包含应该组合在一起的变量,您希望能够编辑,还有用于显示,编辑的代码和wxPython调用(并且还将所有变量保存到文件中)还是再读一遍)?
生硬的
作为一个相对较新的软件行业,我遇到了最后期限执行的问题:
回到学术界的田园时代,截止日期是学期结束,惩罚是一个定义明确的'F'(或当地的等价物).在现实世界中,我们需要制作当前和未来同行可以使用的代码,我面临截止日期到来,截止日期,项目仍未完成的情况.
怎么办?在一个极端,我们可以解雇所有参与者,另一方面,我们可以丰富地奖励所有参与者.
您看到哪些行为被视为错过截止日期的"惩罚",哪些最终会产生更好的代码?
什么项目管理响应导致项目彻底失败,
什么响应恢复了工作顺序并导致后续可以维护的代码?
什么回复导致更糟糕的代码?
objective-c ×2
c ×1
devexpress ×1
django ×1
e-commerce ×1
html ×1
ios ×1
java ×1
javascript ×1
jit ×1
jquery ×1
jvm ×1
lisp ×1
php ×1
python ×1
racket ×1
reporting ×1
reverse ×1
scheme ×1
slideup ×1
wxpython ×1
xtrareport ×1