小编Maz*_*yod的帖子

什么时候在Java中发布缓存对象的好时机?

我正在开发一个Java桌面应用程序,其中有许多缓存,例如对象池,缓存的JPanel等等.

示例:当用户从一个面板切换到另一个面板时,如果用户切换回来,我不会销毁前一个面板.

但是,应用程序内存消耗可能会高,而系统迫切需要这些内存资源,而我正在消耗这些资源不合理......

在iOS应用程序中,我将在"applicationDidReceiveMemoryWarning"方法中发布它们.但在Java ...?

那么,何时是在Java中发布缓存对象的好时机?

java caching memory-management

4
推荐指数
1
解决办法
143
查看次数

将实例变量复制到Objective-C块中

我有以下代码:

- (void)downloadPressed:(id)sender {
    [_download startDownloadWithParser:^id(NSData *rawData) {
        NSString* downloadName = [[_download url] lastPathComponent];

        // ... more code
    }];

    [self reloadView];
}
Run Code Online (Sandbox Code Playgroud)

这段代码位于一个内部UITableViewCell,众所周知,重用机制应该特别注意..

我的问题,简洁明了:

如果我在块之后添加以下代码行:

_download = nil;
Run Code Online (Sandbox Code Playgroud)

_download区块内的变量也被nil'd!我希望得到一份副本,怎么样?

objective-c instance-variables objective-c-blocks

4
推荐指数
1
解决办法
1678
查看次数

通过切割一个大的malloc内存来减少malloc调用

首先,我从这里得到了这个想法:

曾经有一个我编写的应用程序使用了大量的内存小块,每个都分配了malloc().它工作正常,但很慢.我用一个替换了对malloc的许多调用,然后在我的应用程序中切掉了那个大块.它要快得多.

我正在分析我的应用程序,当我减少malloc调用的数量时,我得到了意想不到的良好性能提升.不过,我仍在分配相同数量的内存.

所以,我想做这个人做的事情,但我不确定最好的方法是什么.

我的想法:

// static global variables
static void * memoryForStruct1 = malloc(sizeof(Struct1) * 10000);
int struct1Index = 0;
...
// somewhere, I need memory, fast:
Struct1* data = memoryForStruct1[struct1Index++];
...
// done with data:
--struct1Index;
Run Code Online (Sandbox Code Playgroud)

陷阱:

  • 我必须确保我不超过10000
  • 我必须按照我占用的顺序释放内存.(在我的情况下不是主要问题,因为我正在使用递归,但如果可能的话我想避免它).

灵感来自Mihai Maruseac:

首先,我创建一个链表int,基本上告诉我哪些内存索引是免费的.然后我在我的struct中添加了一个属性,int memoryIndex它可以帮助我返回以任何顺序占用的内存.幸运的是,我确信我的内存需求在任何给定时间都不会超过5 MB,所以我可以安全地分配那么多内存.解决了.

c memory malloc dynamic-allocation

4
推荐指数
1
解决办法
926
查看次数

在应用程序包中添加符号链接

Apple在UILocalNotification类引用中指定音频文件必须来自应用程序包.然而,一些聪明的极客通过使用以下方法找到了解决这个限制的方法:

// this works by going up the bundle dir, then pointing to the Documents dir
localNotif.soundName = @"../Documents/blabla.caf";
Run Code Online (Sandbox Code Playgroud)

这种解决方法已在iOS 5的效果不错,但是,它在IOS 6打破了在绝望的尝试,试图拿出一个解决办法新,我做了一个别名(符号链接)称为blabla.caf该点../Documents/blabla.caf,并把它放在到应用程序中束.这是我被卡住了.

现在,我得到了一个PBXCp error,并且Xcode无法完成应用程序部署到设备,因为显然

错误:/Users/stuff/moreStuff/appName/../Documents/blabla.caf:没有这样的文件或目录


我的问题:

  1. 我可以以某种方式添加一个虚拟文件(0 KB)到该Documents目录只是为了关闭Xcode?
  2. 我可以以某种方式强制Xcode覆盖此错误并继续生活部署应用程序?

xcode alias build linkage ios

4
推荐指数
1
解决办法
4852
查看次数

App Store主页图片

我上传了一个应用程序到我的国家的应用程序商店,它在短短两天内免费获得了第一名!

好吧,我不吹牛,因为无论如何这里没有人关心:p

但!我认为我的应用程序应该在主页上有一张图片(在600x300像素矩形中预览应用程序的大图像[大小近似为:P])

我可以在下一次更新中将我的设计包含在哪里,那么苹果可以看到它并考虑发布它吗?

大小是多少?

(我的问题是否清楚?:p)

iphone itunes image app-store

3
推荐指数
1
解决办法
1853
查看次数

将递归函数转换为for循环?

每个递归函数都有一个等效的循环吗?(两者都达到了相同的效果).

我有这个递归函数:

private static boolean recur(String word, int length) {
    if(length == 1 || length == 2)
        return false;
    if(length == 0)
        return true;
    if(words[length].contains(word.substring(0, length)))
        return recur(word.substring(length), word.length() - length);
    return recur(word, length-1);
}
Run Code Online (Sandbox Code Playgroud)

假设单词是Set [],并且单词[i] =具有长度为i的单词的集合.

我要做的是:用一个单词启动递归(比如说,"stackoverflow",没有空格),我试图找出这个单词是否可以切成子词("堆栈","结束","流程") ..子词的最小长度是3,并且假设长度i的子词在Set words [i]中.

我可以确认这段代码有效,但它可能有内存问题,所以我想将它转为循环..如果可能的话.

你需要更多信息吗?

谢谢.

java recursion loops for-loop nested-loops

3
推荐指数
2
解决办法
3553
查看次数

长整数中的单个位的索引(在C中)

我试图找到一个最佳代码来定位长整数(64位)中的单个位索引.长整数只有一个设置位.(使用C语言)

目前,我只是将整个事情转移一点,然后检查零.我已经阅读了有关查找表的内容,但它不会对整个64位进行操作.我考虑过将每个8位检查为零,如果不使用查找,但我仍然需要一次移动8位.(换挡8比换挡8次要好?)

(注意:我正在为移动设备开发,它们[并不奇怪]慢).

c bit-manipulation pseudocode bit

3
推荐指数
2
解决办法
1428
查看次数

BASH:如何正确使用模式与查找

我拼命地尝试为 find 命令编写一个模式,但它从来没有工作过。我想搜索所有*.txt文件*.h

find . -name "*(*.h|*.txt)"

find . -name "(*.h|*.txt)"

find . -name *(*.h|*.txt)

find . -name "*\(*.h|*.txt\)"

find . -name '*("*.h"|"*.txt")'
Run Code Online (Sandbox Code Playgroud)

bash terminal find

3
推荐指数
1
解决办法
2109
查看次数

为android编译C库,但没有找到符号

我正在尝试为android编译一个简单的C库,但生成的库不包含任何符号/对象!我正在使用nm命令检查库.

这是Android.mk:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := my_lib_static
LOCAL_MODULE_FILENAME := libmylib

LOCAL_C_INCLUDES := $(LOCAL_PATH)

LOCAL_SRC_FILES := File1.c File2.c 

include $(BUILD_SHARED_LIBRARY)
# or include $(BUILD_STATIC_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

编辑:

创建一个名为"objs"的子文件夹,其中包含所有符号.

编辑:

这是输出gobjdump:

MyLibBot.o:     file format elf32-littlemips

gobjdump: MyLibBot.o: not a dynamic object
DYNAMIC SYMBOL TABLE:
no symbols



MyLibCommon.o:     file format elf32-littlemips

gobjdump: MyLibCommon.o: not a dynamic object
DYNAMIC SYMBOL TABLE:
no symbols



MyLibGameLogic.o:     file format elf32-littlemips

gobjdump: MyLibGameLogic.o: not a dynamic object
DYNAMIC SYMBOL TABLE: …
Run Code Online (Sandbox Code Playgroud)

c java-native-interface android static-libraries android-ndk

3
推荐指数
1
解决办法
3903
查看次数

将Swift函数传递给NSTimer

我在另一个函数中有一些函数.在function1中我想使用NSTimer在一段时间之后调用func2,如下所示:

func myFunc1()
{
   NSTimer.scheduledTimerWithTimeInterval(1, target: ??, selector:#selector(myFunc2()), userInfo: nil, repeats: false)
   func myFunc2()
   {
      // do something...
   }
}
Run Code Online (Sandbox Code Playgroud)

我应该通过哪个正确的"目标"价值?它甚至可能吗?

nstimer ios swift

3
推荐指数
1
解决办法
2548
查看次数