小编esi*_*ver的帖子

密钥到期前的Memcached驱逐?

如果仍有可用空间,那么存储在memcached中的键/值对是否可以在到期之前被逐出?

我有一个运行的memcached进程,允许消耗高达6GB; 据报道,2.5GB正在使用中,而且这个数字波动很小(一天内+/- 100MB).如果我设置一个在15分钟内到期的简单字符串值,是否有可能在15分钟之前将其逐出(cache.get返回未找到)?

谢谢,-Eric

memcached

19
推荐指数
1
解决办法
2万
查看次数

适用于iOS的Growl/toast风格通知库

任何人都可以推荐一个库来在iOS上实现咆哮或吐司式通知吗?例如,在用户保存个人资料后,我希望通知淡入,延迟3秒,报告"个人资料已保存"并淡出.现在我有一个UIAlertView,用一个"OK"按钮中断用户的工作流程,我觉得这样做太过分了.

Android的吐司类是什么,我期待在iOS的例子.

谢谢!

iphone notifications toast ios

18
推荐指数
5
解决办法
3万
查看次数

iPhone核心数据轻量级迁移Cocoa错误134130:找不到源存储的模型

伙计们,

轻量级迁移在这条线上100%的时间都失败了:

[persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]
Run Code Online (Sandbox Code Playgroud)

有错误:

Error: Error Domain=NSCocoaErrorDomain Code=134130 UserInfo=0x4fbff20 "Operation could not be completed. (Cocoa error 134130.)"
"Can't find model for source store";
Run Code Online (Sandbox Code Playgroud)

这是我的托管对象上下文,模型和持久性存储:

- (NSManagedObjectContext *) managedObjectContext {

    if (managedObjectContext != nil) {
        return managedObjectContext;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        managedObjectContext = [[NSManagedObjectContext alloc] init];
        [managedObjectContext setPersistentStoreCoordinator: coordinator];
    }
    return managedObjectContext;
}

- (NSManagedObjectModel *)managedObjectModel {

    if (managedObjectModel != nil) {
        return managedObjectModel;
    }

    managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] …
Run Code Online (Sandbox Code Playgroud)

iphone core-data

16
推荐指数
2
解决办法
1万
查看次数

为什么在android中恢复活动会导致BadTokenException?

伙计们 - 谁能解释这个堆栈?请注意,我的代码无处可去.如果你谷歌中的任何一个例外,遇到此问题的每个人都试图在活动终止后创建对话框,这似乎不是这里的情况.这只是一个简单的活动简历.我经常看到该领域的客户报告此异常,并且如果可能的话想要纠正它.

android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@405177d8 is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:527)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.view.Window$LocalWindowManager.addView(Window.java:424)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2268)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2955)
at android.app.ActivityThread.access$1600(ActivityThread.java:124)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:972)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3806)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

更新:

以下是我能够远程检索此堆栈的方法.首先,我在我的活动的onCreate顶部添加了一个uncaughtExceptionHandler:

try {
  File crashLogDirectory = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + Constants.CrashLogDirectory);
  crashLogDirectory.mkdirs();

  Thread.setDefaultUncaughtExceptionHandler(new RemoteUploadExceptionHandler(this, crashLogDirectory.getCanonicalPath()));
} catch (Exception e) {
  if (MyActivity.WARN) Log.e(MyActivity.TAG, "Exception setting up …
Run Code Online (Sandbox Code Playgroud)

android window-managers android-activity

14
推荐指数
2
解决办法
4649
查看次数

在Amazon RDS/Mysql中解释这种内存消耗模式?

伙计们,

有人可以在运行Mysql的Amazon RDS上解释这种内存消耗模式吗?在此图中,我在03:30升级到具有34GB可用内存的db.m2.2xlarge.您可以非常清楚地看到切换.当客户端开始连接并命中该实例时,Freeable内存急剧下降到5GB,现在它正在徘徊.在我之前的数据库实例大小之间的升级中,我看到了相同的模式,直到可释放的内存降到1GB以下并无限期地在那里盘旋.

这个实例在03:30和07:30之间做什么?为什么不释放未使用的内存,因为它可用?我想我希望这个图形是波形,对应于使用和流量模式,vs和指数衰减形状,这表明它是一个超级懒惰和/或破碎的垃圾收集算法.

另请注意,大约有2/3的DB操作是写入,1/3是读取,并且DB前面有大约2GB的内存缓存.

内存消耗亚马逊rds mysql

mysql memory-leaks memory-management amazon-web-services amazon-rds

14
推荐指数
1
解决办法
5134
查看次数

如果dataSource计数可能会改变,可以同时使用reloadItemsAtIndexPaths和reloadData吗?

我正在调查一个崩溃的错误,UICollectionView通过一个通常采用这种形式的通过Crashlytics:

致命异常:NSInternalInconsistencyException无效更新:第0部分中的项目无效.更新后现有部分中包含的项目数(25)必须等于更新前该部分中包含的项目数(27),再加上或减去从该部分插入或删除的项目数量(插入1个,删除1个)以及加入或减去移入或移出该部分的项目数量(0移入,0移出).

我相信这是因为我有一个collectionView,它定期刷新来自服务器的数据,并且来自服务器的数据可能包含比客户端中包含的更多或更少的项目UICollectionViewDataSource.

当我从服务器获取新数据时,我会调用reloadData我的集合视图.

但是,有可能由于用户在网络下载完成之前与我的集合视图进行交互,我之前就打过电话reloadItemsAtIndexPaths.reloadItemsAtIndexPaths似乎没有完成至少几百毫秒和许多处理器周期.因此,当数据源在中间更新时崩溃reloadItemsAtIndexPaths.

有"直接"形式reloadItemsAtIndexPaths吗?或者我必须始终根据reloadData我的用例进行调用,这似乎会立即更新所有内容并UICollectionView在最后保持良好状态.


编辑

根据TwoStraws的建议,这就是我所做的:

    // Prevent data source from batch updating while we work
    self.dataSource.locked = YES;

    [self.collectionView performBatchUpdates:^{
        [self.collectionView reloadItemsAtIndexPaths:@[indexPath]];
    } completion:^(BOOL finished) {
        self.dataSource.locked = NO;
    }];
Run Code Online (Sandbox Code Playgroud)

然后在我的数据源类中,收到服务器的结果后,我总是打电话assignResults:

- (void)assignResults:(NSMutableArray *)newResults {
    if (!self.locked) {
        self.results = newResults;
        [self.delegate handleDataSourceUpdated:self];
    } else {
        self.pendingResults = newResults;
    }
}

- (void)setLocked:(BOOL)locked {
    _locked = locked; …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uicollectionview

13
推荐指数
1
解决办法
757
查看次数

是否必须从Android生命周期中删除自己作为观察者?

我正在构建一个实现该LifecycleObserver接口的Android Java类.

这是构造函数:

public MyObserver(AppCompatActivity activity) {
    this.mActivity = new WeakReference<AppCompatActivity>(activity);
    activity.getLifecycle().addObserver(this);
}
Run Code Online (Sandbox Code Playgroud)

是否有必要使用以下内容进行呼叫removeObserver:

@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
public void destroyListener() {
    if (this.mActivity.get() != null) {
        this.mActivity.get().getLifecycle().removeObserver(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,我可以永远观察吗?

android activity-lifecycle android-lifecycle

13
推荐指数
2
解决办法
2876
查看次数

Android:将Stream转换为String而不会耗尽内存

我有一个Android客户端,通过REST-ful端点和JSON与服务器通信.因此,我需要在将其转换为Hash之前检索完整的服务器响应.我有这个代码(在互联网上找到的地方):

private static String convertStreamToString(InputStream is) {

    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();

    String line = null;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

代码在大多数情况下都有效,但是我看到来自具有OutOfMemory异常的客户端在该字段中崩溃的报告:

    while ((line = reader.readLine()) != null) {
Run Code Online (Sandbox Code Playgroud)

完整的堆栈跟踪是:

java.lang.RuntimeException: An error occured while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:200)
    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:124) …
Run Code Online (Sandbox Code Playgroud)

java android json out-of-memory

12
推荐指数
1
解决办法
2万
查看次数

当我的代码没有出现在堆栈上时,如何解释ANR traces.txt?

我试图在我的Android应用程序中调试持久性ANR("应用程序无响应").

我已阅读这些主题:

最重要的信息是使用StrictMode,我将这样做.

但是,我仍然想解释我反复看到的ANR堆栈的原因.首先,我没有看到任何主线程 - 而是在主"组"中看到许多线程,包括一个名为"waitForActivityStart"的线程.

我没有看到我的代码,所以我很困惑这个ANR是如何因为我自己的代码而发生的.我从我安装的库中看到的唯一代码是Google Analytics(GA),您可以看到标题为"GAThread"的代码.这可能是罪魁祸首吗?如果是这样,有人可以解释我如何从这份报告中推断出这一点吗?

这是我在运行4.2.2的Nexus 7上使用ADB提取的traces.txt的输出

----- pid 15370 at 2013-05-11 11:12:04 -----
Cmd line: com.appspot.myapp

DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)

"waitForActivityStart" prio=5 tid=12 WAIT
  | group="main" sCount=1 dsCount=0 obj=0x41d63a98 self=0x658cafd0
  | sysTid=16096 nice=0 sched=0/0 cgrp=apps handle=1736692928
  | state=S schedstat=( 27554000 13871100000 1319 ) utm=2 stm=0 core=0
  at java.lang.Object.wait(Native Method)
  - waiting on <0x41d63a98> (a java.util.Timer$TimerImpl)
  at java.lang.Object.wait(Object.java:364)
  at java.util.Timer$TimerImpl.run(Timer.java:214)

"Binder_5" prio=5 tid=32 NATIVE
  | group="main" …
Run Code Online (Sandbox Code Playgroud)

android hang android-anr-dialog

12
推荐指数
1
解决办法
1万
查看次数

在ActiveRecord 5中替换ActiveRecord :: ConnectionAdapters :: ConnectionManagement

我们正在将一个Sinatra应用程序从ActiveRecord 4升级到ActiveRecord 5.之前我们有这一行:

use ActiveRecord::ConnectionAdapters::ConnectionManagement

这是因为在请求完成后没有清理连接.以下是关于此主题的SO讨论:

从ActiveRecord 5开始,此行不再有效.rails项目中的这个对话说明:

删除它有利于Executor和Reloader API.被删除的中间件不是公共API的一部分.如果你想在Rails之外使用它,你需要制作一个.

这是否意味着,如果有人要将ActiveRecord 5与Sinatra一起使用,除非开发人员重新创建现已删除的中间件,否则连接将在请求后再次"泄露"或未返回到池中?

在Sinatra示例中,现在是否需要在ActiveRecord 5中包含此行?

after do
  ActiveRecord::Base.clear_active_connections!
end
Run Code Online (Sandbox Code Playgroud)

这就是链接线程的含义,但我希望得到一个明确的答案,我可以回到我的开发团队.

ruby activerecord ruby-on-rails sinatra sinatra-activerecord

12
推荐指数
1
解决办法
1196
查看次数